始める無料で始める

Doomed トランザクション

新規顧客 2 名のデータを customer テーブルに挿入したいとします。エラーが起きた場合はトランザクションを ROLLBACK し、エラーメッセージを取得できるよう、制御するスクリプトを用意します。これを XACT_ABORTXACT_STATE の組み合わせで制御したいと考えています。

この演習はコースの一部です

SQL Server におけるトランザクションとエラー処理

コースを見る

演習の手順

  • XACT_ABORT を適切な設定にします。
  • オープンなトランザクションがあるか確認します。
  • トランザクションを ROLLBACK します。
  • エラーメッセージを SELECT します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

-- Use the appropriate setting
SET XACT_ABORT ___;
BEGIN TRY
	BEGIN TRAN;
		INSERT INTO customers VALUES ('Mark', 'Davis', '[email protected]', '555909090');
		INSERT INTO customers VALUES ('Dylan', 'Smith', '[email protected]', '555888999');
	COMMIT TRAN;
END TRY
BEGIN CATCH
	-- Check if there is an open transaction
	IF ___() <> 0
    	-- Rollback the transaction
		___;
    -- Select the message of the error
    SELECT ___() AS Error_message;
END CATCH
コードを編集して実行