开始使用免费开始使用

实现您自己的 TRY..CATCH

修改 dbo.cuspRideSummaryDelete,人为加入一个错误,以便查看 TRYCATCH 代码块的工作方式。

本练习是课程的一部分

SQL Server 中的函数与存储过程编写

查看课程

练习说明

  • @DateParm 错误地声明为 nvarchar(30) 类型,而不是 date
  • @Error 作为可选的 OUTPUT 参数包含进去。
  • DELETE 语句放在 BEGIN TRY...END TRY 代码块中。
  • BEGIN CATCH...END CATCH 代码块中把 ERROR_NUMBER()ERROR_SEVERITY()ERROR_STATE()ERROR_MESSAGE()ERROR_LINE() 拼接起来,并 SET@Error

交互式实操练习

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

-- Alter the stored procedure
CREATE OR ALTER PROCEDURE dbo.cuspRideSummaryDelete
	-- (Incorrectly) specify @DateParm
	___ ___(30),
    -- Specify @Error
	___ nvarchar(max) = NULL OUTPUT
AS
SET NOCOUNT ON
BEGIN
  -- Start of the TRY block
  ___ ___
  	  -- Delete
      DELETE FROM RideSummary
      WHERE Date = @DateParm
  -- End of the TRY block
  ___ ___
  -- Start of the CATCH block
  ___ ___
		SET @Error = 
		'Error_Number: '+ CAST(___() AS VARCHAR) +
		'Error_Severity: '+ CAST(___() AS VARCHAR) +
		'Error_State: ' + CAST(___() AS VARCHAR) + 
		'Error_Message: ' + ___() + 
		'Error_Line: ' + CAST(___() AS VARCHAR)
  -- End of the CATCH block
  ___ ___
END;
编辑并运行代码