SQL Server における、トランザクションの使い方をまとめます。
トランザクションの使い方
SQL Server では、BEGIN TRANSACTION と COMMIT TRANSACTION の間に記述したSQLが一つのトランザクションとして扱われます。
TRANSACTION は TRAN と略すことが可能です。
また、TRY~CATCHでエラーを検知した場合にROLLBACKを行う必要がありますので、忘れないように記述しましょう。
構文
BEGIN TRY
BEGIN TRAN
トランザクションにしたいSQL文
COMMIT TRAN
END TRY
BEGIN CATCH
ROLLBACK TRAN
END CATCH
エラーメッセージの取得 ERROR_MESSAGE()
TRY~CATCHで検知したエラーの詳細を取得する関数「ERROR_MESSAGE()」が用意されています。
これを使うことでエラーの詳細を確認することができます。
BEGIN TRY
BEGIN TRAN
INSERT INTO TEST(
Name,Age
)
VALUES(
'testtesttest',100
)
COMMIT TRAN
END TRY
BEGIN CATCH
SELECT ERROR_MESSAGE()
ROLLBACK TRAN
END CATCH
上記のSQLでnvarchar(10)の列に10文字以上の文字列を挿入してエラーを発生させます。
その結果を SELECT ERROR_MESSAGE() で取得します。すると、下記の画像のように表示されます。
![](https://web.archive.org/web/20220519075023im_/https://pg-life.net/wp-content/uploads/2021/10/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2021-10-14-181209-1024x106.png)