我一直在整理 SQL Server 中的整个嵌套事务,并且发现了这些对嵌套 trans 行为的理解的要点:
- 嵌套事务时,只有最外层的提交才会真正提交。
- “提交 Trans txn_name”,当嵌套时,将始终适用于最里面的事务,即使 txn_name 指的是外部事务。
- "ROLLBACK TRAN" (no name) ,即使在内部事务中,也会回滚所有事务。
- "ROLLBACK TRAN txn_name" - txn_name 必须引用最外层的 txn 名称。如果没有,它将失败。
鉴于这些,命名交易有什么好处吗?您不能使用它来定位特定的事务,无论是提交还是回滚。它仅用于代码注释目的吗?
谢谢,
约尼