ÎncepețiÎncepe gratuit

Propriul tău TRY..CATCH

Modifică dbo.cuspRideSummaryDelete pentru a include o eroare intenționată, astfel încât să vedem cum funcționează blocul TRY CATCH.

Acest exercițiu face parte din cursul

Scrierea funcțiilor și a procedurilor stocate în SQL Server

Vezi cursul

Instrucțiuni pentru exercițiu

  • Atribuie incorect tipul de date nvarchar(30) parametrului @DateParm în loc de date.
  • Include @Error ca parametru OUTPUT opțional.
  • Include instrucțiunea DELETE în interiorul blocului BEGIN TRY...END TRY.
  • Concatenează ERROR_NUMBER(), ERROR_SEVERITY(), ERROR_STATE(), ERROR_MESSAGE(), ERROR_LINE() în interiorul blocului BEGIN CATCH...END CATCH și atribuie rezultatul lui @Error folosind SET.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

-- 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;
Editează și rulează codul