首页 > 解决方案 > 我可以回滚 SQL Server 中具有多个内部事务的事务吗?

问题描述

我听说如果有嵌套事务,内部事务将不会被提交。

例如,我有一个父程序和大约几个子程序,每个子程序都带有 begin tran/commit/rollback。

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)

我需要调试父过程,但我需要在最后回滚事务,而不是提交它所做的一切。这是一个巨大的过程。

如果我做

    Begin tran 
    - (parent procedure)
      -- Inner Procedure1
      -- Inner Procedure2
      -- Inner Procedure3
      -- Inner Procedure4
      -- Inner Procedure5
    rollback tran

假设任何地方都没有错误,是否会回滚所有过程中发生的所有事情?

标签: sqlsql-servertransactions

解决方案


感谢您的答复。看起来答案是肯定的,一切都会回滚。


推荐阅读