开始使用免费开始使用

在嵌套的 TRY...CATCH 中使用错误函数

您的电动自行车门店刚到了一批新车,需要更新库存。

您打算登记:收到 2 辆 Trek Powerfly 5 - 2018,每辆 $3499.99;以及 3 辆 New Power K- 2018,每辆 $1999.99。

您尝试将这些产品插入数据库,因为您认为它们是新型号。不过您忘了,第一款车已经在库存中。好在 products 表有一个约束,要求每个产品名称都唯一。

您准备了一段脚本来控制插入时可能出现的错误。您还希望把可能的错误记录到名为 errors 的表中;如果在插入错误记录时发生故障,则显示错误编号和错误消息。

本练习是课程的一部分

SQL Server 中的事务与错误处理

查看课程

练习说明

  • 用一个 CATCH 块包裹错误处理。
  • errors 表中插入 'Error inserting a product',并使用另一个 TRY 块包裹这次插入。
  • 用另一个 CATCH 块包裹该嵌套的错误处理。
  • 在内部的 CATCH 块中选择错误行号和错误消息。

交互式实操练习

通过完成这段示例代码来试试这个练习。

BEGIN TRY
    INSERT INTO products (product_name, stock, price) 
    VALUES	('Trek Powerfly 5 - 2018', 2, 3499.99),   		
    		('New Power K- 2018', 3, 1999.99)		
END TRY
-- Set up the outer CATCH block
___ ___
	SELECT 'An error occurred inserting the product!';
    -- Set up the inner TRY block
    ___ ___
    	-- Insert the error
    	INSERT INTO ___ 
        	VALUES ('Error inserting a product');
    ___ ___    
    -- Set up the inner CATCH block
    ___ ___
    	-- Show number and message error
    	SELECT 
        	___ AS line,	   
			___ AS message; 
    ___ ___    
___ ___
编辑并运行代码