开始使用免费开始使用

执行会抛出错误的存储过程

您要登记收到 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 ___;
___ ___
编辑并运行代码