開始使用免費開始

不帶參數的 THROW

你想要準備一個預存程序,將新產品插入資料庫。在這個預存程序中,你想把可能發生的錯誤插入到名為 errors 的資料表,然後再次拋出原始錯誤。

你會如何撰寫這個預存程序?

本練習屬於課程

SQL Server 的交易與錯誤處理

檢視課程

練習說明

  • CATCH 區塊包住錯誤處理。
  • 將錯誤插入 errors 資料表。
  • 以分號(;)結束 INSERT 陳述式。
  • 再次拋出原始錯誤。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

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
-- Set up the CATCH block
___ ___
	-- Insert the error and end the statement with a semicolon
    ___ ___ errors VALUES ('Error inserting a product')___
    -- Re-throw the error
	___; 
___ ___
編輯並執行程式碼