【发布时间】:2012-02-02 20:26:57
【问题描述】:
我将交易放入我所有的“设置”程序中。没问题。一切正常。
在这种情况下,我需要一组程序来调用另一个程序,谢天谢地,只调用一次,否则可能会使事情变得更加复杂。
所以快乐的沐浴就是这样。
- 我在 ProcA 并开始交易。
- 它调用 ProcB 并启动一个事务。
- ProcB 成功并提交。
- ProcA 成功并提交。
但是,如果 ProcB 失败、回滚并重新抛出错误,会发生什么情况。它应该会导致 ProcA 回滚正确吗?
如果 ProcB 成功,提交,然后 ProcA 随后失败,并回滚...... ProcB 中发生的事情会被回滚吗?还是承诺了?
我需要这两者一起工作,要么都成功,要么失败并且都被回滚。确保发生这种情况的最佳方法是什么?
我正在使用 Microsoft SQL Server 2008 R2 (SP1)
注意:如果 ProcB 需要一个事务,因为它可以在没有 ProcA 包装的情况下被调用。从技术上讲,ProcA 并不总是调用 ProcB(取决于输入)。
【问题讨论】:
标签: sql-server sql-server-2008 stored-procedures transactions