Doomed トランザクション
新規顧客 2 名のデータを customer テーブルに挿入したいとします。エラーが起きた場合はトランザクションを ROLLBACK し、エラーメッセージを取得できるよう、制御するスクリプトを用意します。これを XACT_ABORT と XACT_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