执行会抛出错误的存储过程
您要登记收到 3 辆 Trek Conduit+ 自行车,单价 $499.99。
您认为 products 表中不存在 Trek Conduit+,因此打算把它作为新产品插入,使用您在上一个练习中创建的存储过程:
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 ___;
___ ___