2

一部のテーブルが変更された(列が追加された)データベースを更新する必要があります。このアクションを適切なトランザクションで実行したいと思います。コードが問題なく実行された場合は、変更をコミットします。それ以外の場合は、データベースを元の状態にロールバックします。

私はこのようなことをしたい:

BEGIN TRANSACTION
    ...Execute some sql statements here
COMMIT TRANSACTION (When every thing goes well)
ROLLBACK TRANSACTION (When something goes wrong)

これを行うための最良の方法を教えてください。@@TranCount変数があることは知っていますが、その正確な目的はわかりません。

ありがとう。

4

1 に答える 1

4
Begin Transaction

Alter Table dbo.MyTable
Add Col1 varchar(50)

If @@Error = 0

   Begin
    Commit Transaction
   End
Else
   Begin
    Rollback Transaction
   End

@@ Errorは各SQLステートメントの後にリセットされるため、各ステートメントが実行された直後にエラーをチェックしてエラーをチェックする必要があります。

于 2010-06-03T07:13:14.007 に答える