開始使用免費開始

執行會擲出錯誤的預存程序

你想登錄收到 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 ___;
___ ___
編輯並執行程式碼