【SQL Server】トランザクションの使い方

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() で取得します。すると、下記の画像のように表示されます。

Leave a Reply

Your email address will not be published. Required fields are marked *