title: Can I rollback a transaction that has multiple inner transactions in SQL Server?
body: <p>I hear if there are nested transactions, the inner transactions will not be committed. </p>
  
  <p>For example, I have a Parent Procedure and about a handful of children procedures each with begin tran/commit/rollback.</p>
  
  <pre><code>Parent Procedure 
  - Inner Procedure1 (has being tran/commit/rollback tran)
  - Inner Procedure2 (has being tran/commit/rollback tran)
  - Inner Procedure3 (has being tran/commit/rollback tran)
  - Inner Procedure4 (has being tran/commit/rollback tran)
  - Inner Procedure5 (has being tran/commit/rollback tran)
  </code></pre>
  
  <p>I need to debug the parent procedure but I need to rollback the transaction at the end instead of committing everything it did. It's a huge procedure.</p>
  
  <p>If I do</p>
  
  <pre><code>    Begin tran 
      - (parent procedure)
        -- Inner Procedure1
        -- Inner Procedure2
        -- Inner Procedure3
        -- Inner Procedure4
        -- Inner Procedure5
      rollback tran
  </code></pre>
  
  <p>Will everything that happened in all procedures be rolledback assuming no errors anywhere?</p>