TRY...CATCH 構文の入れ子
buyers テーブルに新しい購入者を登録したいとします。新しい購入者は Peter Thomson で、メールアドレスは [email protected]、電話番号は 555000100 です。
データベースには、各エラーを保存する errors というテーブルもあります。
この人のデータを挿入する際に起こりうるエラーを制御し、そのエラーを errors テーブルにも挿入するスクリプトを用意します。
どのようにスクリプトを準備しますか?
この演習はコースの一部です
SQL Server におけるトランザクションとエラー処理
演習の手順
INSERT INTO buyers文をTRYブロックで囲みます。- エラー処理を
CATCHブロックで囲みます。 INSERT INTO errors文を別のTRYブロックで囲みます。- 入れ子にしたエラー処理を別の
CATCHブロックで囲みます。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
-- Set up the first TRY block
___ ___
INSERT INTO buyers (first_name, last_name, email, phone)
VALUES ('Peter', 'Thompson', '[email protected]', '555000100');
___ ___
-- Set up the first CATCH block
___ ___
SELECT 'An error occurred inserting the buyer! You are in the first CATCH block';
-- Set up the nested TRY block
___ ___
INSERT INTO errors
VALUES ('Error inserting a buyer');
SELECT 'Error inserted correctly!';
___ ___
-- Set up the nested CATCH block
___ ___
SELECT 'An error occurred inserting the error! You are in the nested CATCH block';
___ ___
___ ___