SQLServerでトランザクション処理をするサンプルです。
構文
- (トランザクション開始)
- BEGIN TRANSACTION
- (トランザクション終了(COMMIT))
- COMMIT TRANSACTION
省略して(COMMIT)のみでもOKです。
- (トランザクション終了(ROLLBACK))
- ROLLBACK TRANSACTION
省略して(ROLLBACK)のみでもOKです。
サンプル
例)トランザクションを使ったサンプル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
--トランザクション開始 BEGIN TRANSACTION --処理実行 UPDATE M_USER SET NAME = '鈴木' WHERE CODE = '101' --処理件数判定 IF @@ROWCOUNT = 1 --処理件数が1件ならコミット BEGIN COMMIT TRANSACTION PRINT 'コミットしました' END ELSE --処理件数が1件でない場合はロールバック BEGIN ROLLBACK TRANSACTION PRINT 'ロールバックしました' END |
備考
- BEGIN TRANSACTIONを行わないで、COMMIT TRANSACTIONや ROLLBACK TRANSACTION を実行するとエラーになります。
- (例)
- メッセージ 3902、レベル 16、状態 1、行 1 COMMIT TRANSACTION 要求に対応する BEGIN TRANSACTION がありません。