始める無料で始める

エラーをスローするストアドプロシージャを実行する

$499.99 の価格で Trek Conduit+ バイクを 3 台受け取ったことを登録したいとします。 products テーブルに Trek Conduit+ は存在しないと考え、前の演習で作成したストアドプロシージャを使って新しい商品として挿入しようとします。

CREATE PROCEDURE insert_product
  @product_name VARCHAR(50),
  @stock INT,
  @price DECIMAL

AS

BEGIN TRY
    INSERT INTO products (product_name, stock, price)
        VALUES (@product_name, @stock, @price);
END TRY
BEGIN CATCH    
    INSERT INTO errors VALUES ('Error inserting a product');  
    THROW;  
END CATCH

ストアドプロシージャの実行で発生する可能性のあるエラーを捕捉し、元のエラーメッセージを表示する必要があります。

どのようにスクリプトを準備しますか?

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

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

コースを見る

演習の手順

  • insert_product というストアドプロシージャを実行します。
  • ストアドプロシージャのパラメータに適切な値を設定します。
  • エラー処理を CATCH ブロックで囲みます。
  • エラーメッセージを選択して表示します。

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

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

BEGIN TRY
	-- Execute the stored procedure
	EXEC ___
    	-- Set the values for the parameters
    	@product_name = 'Trek Conduit+',
        @stock = ___,
        @price = ___;
END TRY
-- Set up the CATCH block
___ ___
	-- Select the error message
	SELECT ___;
___ ___
コードを編集して実行