SQL Server 2008 R2 はネストされたトランザクションをサポートしていますが、私は SQL Server 2008 Standard Edition を使用しています。ネストされたトランザクションをサポートしているかどうか教えてください。
1 に答える
4
ネストされたトランザクションをサポートする SQL Server のバージョンはありません。ように見えますが、そうではありません
なんで?
ROLLBACK
すべてのトランザクションをロールバックできます- 一部のエラーは、トランザクション スタックを「破滅」させます
SET XACT_ABORT ON
暗黙的なロールバックを行います
したがって、セーブポイントと名前付きトランザクションを使用しても、真にネストすることはできません。たとえば、次のリンクはセーブポイントでこのパターンを無効にします: http://rusanu.com/2009/06/11/exception-handling-and-nested-transactions/ . SET XACT_ABORT ON
SQL 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 に答える