1

SQL Server 2008 R2 はネストされたトランザクションをサポートしていますが、私は SQL Server 2008 Standard Edition を使用しています。ネストされたトランザクションをサポートしているかどうか教えてください。

4

1 に答える 1

4

ネストされたトランザクションをサポートする SQL Server のバージョンはありません。ように見えますが、そうではありません

なんで?

  • ROLLBACKすべてのトランザクションをロールバックできます
  • 一部のエラーは、トランザクション スタックを「破滅」させます
  • SET XACT_ABORT ON暗黙的なロールバックを行います

したがって、セーブポイントと名前付きトランザクションを使用しても、真にネストすることはできません。たとえば、次のリンクはセーブポイントでこのパターンを無効にします: http://rusanu.com/2009/06/11/exception-handling-and-nested-transactions/ . SET XACT_ABORT ONSQL Serverで本当に必要なので、これに頼るのは嫌です

したがって、ここでストアド プロシージャのネストを有効にするための私の答え: TRY CATCH ROLLBACK パターンを含むネストされたストアド プロシージャ?

これは、権威ある Paul S. Randal へのリンクです: http://www.sqlskills.com/blogs/paul/a-sql-server-dba-myth-a-day-2630-nested-transactions-are-real/

于 2013-05-30T13:39:43.740 に答える