SQL Server Management StudioなどでSQL文を単発で実行すると、そのままコミットされる。
そうではなく、「トランザクション文」としたい場合の構文のメモ。
なお、今回のバージョンは以下です。
- SQL Server Standard 2008 R2
トランザクションの開始は、「BEGIN TRANSACTION」。
コミットは、「COMMIT TRANSACTION」。
ロールバックは、「ROLLBACK TRANSACTION」。
こんな感じで使う。
BEGIN TRANSACTION UPDATE TEST SET ID = '0001' WHERE ID = '0002'; COMMIT TRANSACTION
排他制御のテストなどをしようと思ったら、以下のように「UPDLOCK」でトランザクションをコミットせずにしておけば、ロックし続ける。
BEGIN TRANSACTION SELECT ID FROM TEST WITH (UPDLOCK) WHERE ID = '0001';
コメント