始める無料で始める

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';
    ___ ___ 
___ ___
コードを編集して実行