2

transact-sql で、「begin transaction」と「commit transaction」の間に異なるアクションを囲む目的は何ですか

関数の途中で例外がスローされると、トランザクションがロールバックされないことに気付きました。エラーが発生した場合、トランザクションをロールバックする方法は?

4

1 に答える 1

2

try と catch を使用して適切なエラー処理を行う最良の方法。次に、ロールバック tran などのエラーに基づいて catch 句でアクションを実行します。

ただし、コードをまったく変更したくない場合は、コードの実行前に次のように指定します。

set xact_abort on

これにより、トランザクションの自動ロールバックが発生します。ただし、最善の解決策は、エラーを適切にキャッチして処理することです。

于 2012-07-14T06:22:45.623 に答える