开始使用免费开始使用

不带参数的 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
	___; 
___ ___
编辑并运行代码