嵌套事务的目的

Pet*_*hev 15 database sql-server transactions nested-transactions

我从未理解嵌套事务的好处.提交嵌套事务不会提交任何内容 - 它只会减少@@TRANCOUNT.并ROLLBACK回滚一切.

BEGIN TRANSACTION
   //do an update
   BEGIN TRANSACTION
     //do an insert
   COMMIT TRANSACTION
COMMIT TRANSACTION
Run Code Online (Sandbox Code Playgroud)

与此有什么不同:

BEGIN TRANSACTION
     //do an update
     //do an insert
COMMIT TRANSACTION
Run Code Online (Sandbox Code Playgroud)

请举例说明为什么要使用嵌套事务以及它们如何产生影响.

问候,Petar

Luc*_*ero 9

嵌套事务允许您的代码调用其他代码(例如SP)中,它使用交易本身,而无需实际提交事务时,他们提交.

也就是说,您可以使用安全点在事务内部回滚.

一篇专门针对此的CodeProject文章.

  • 另请参阅http://rusanu.com/2009/06/11/exception-handling-and-nested-transactions/ (2认同)