不带参数的 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
___;
___ ___