エラーをスローするストアドプロシージャを実行する
$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 ___;
___ ___