เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

TRY..CATCH ของคุณเอง

แก้ไข dbo.cuspRideSummaryDelete โดยเพิ่มข้อผิดพลาดโดยตั้งใจ เพื่อดูว่าบล็อก TRY CATCH ทำงานอย่างไร

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การเขียนฟังก์ชันและ Stored Procedures ใน SQL Server

ดูคอร์ส

คำแนะนำการฝึกหัด

  • กำหนดชนิดข้อมูลให้ @DateParm เป็น nvarchar(30) แทนที่จะเป็น date (โดยตั้งใจให้ผิด)
  • เพิ่ม @Error เป็นพารามิเตอร์ OUTPUT แบบเลือกใช้ได้
  • วางคำสั่ง DELETE ไว้ภายในบล็อก BEGIN TRY...END TRY
  • เชื่อมต่อ ERROR_NUMBER(), ERROR_SEVERITY(), ERROR_STATE(), ERROR_MESSAGE(), ERROR_LINE() ภายในบล็อก BEGIN CATCH...END CATCH แล้ว 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;
แก้ไขและรันโค้ด