執行會擲出錯誤的預存程序
你想登錄收到 3 台價格為 $499.99 的 Trek Conduit+ 腳踏車。
你認為 Trek Conduit+ 在 products 資料表中不存在,所以你打算把它當成新產品插入,並使用你在上一個練習建立的預存程序:
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 ___;
___ ___