DB

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

エンジニアの転職ならこれ!

【第二新卒向け】マイナビジョブ20's

マイナビジョブ20'sは、20代・第二新卒・既卒向けの転職エージェントです。

▼こんな方におすすめ
・はじめて転職しようと思っている
・転職できるだけのスキルが自分にあるか不安
・手厚いサポートを受けたい

【フリーランス向け】安心保障と豊富な案件紹介 Midworks

Midworksは豊富な案件と「フリーランス」と「正社員」の良いとこ取りをした働き方を実現する手厚い保障が特徴です。

▼こんな方におすすめ
・現在正社員でフリーランスになろうか悩んでいる
・フリーランスとして働いているが、先行きが不安がある  (安定的な案件確保や保障など)
・自分の市場価値を知りたい、見合った案件で参画したい
・今後のキャリアビジョンを踏まえて案件を選びたい

【未経験向け】自宅で現役エンジニアから学べる TechAcademy

テックアカデミーは、現役エンジニアから学べるオンラインに特化したプログラミングスクールです。
講師は全員、通過率10%の選考に合格した現役エンジニア。
確かなスキルをもとに受講生をマンツーマンサポートします。


▼こんな方におすすめ
・自宅にいながらオンライン完結で勉強できる
・受講生に1人ずつ現役エンジニアのパーソナルメンターが専属でつく
・チャットで質問すればすぐに回答が返ってくる
・オリジナルサービスやオリジナルアプリなどの開発までサポート