LoslegenKostenlos starten

Dein eigenes TRY..CATCH

Ändere dbo.cuspRideSummaryDelete, um einen absichtlichen Fehler einzubauen, damit wir sehen, wie der TRY-CATCH-Block funktioniert.

Diese Übung ist Teil des Kurses

<Kurs>Funktionen und Stored Procedures in SQL Server schreiben</Kurs>
Kurs ansehen

Übungsanweisungen

  • Weise @DateParm fälschlicherweise den Datentyp nvarchar(30) statt date zu.
  • Füge @Error als optionalen OUTPUT-Parameter hinzu.
  • Setze die DELETE-Anweisung in den Block BEGIN TRY...END TRY.
  • Verkette ERROR_NUMBER(), ERROR_SEVERITY(), ERROR_STATE(), ERROR_MESSAGE(), ERROR_LINE() innerhalb des Blocks BEGIN CATCH...END CATCH und weise das Ergebnis per SET @Error zu.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

-- 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;
Code bearbeiten und ausführen