Try/Catch Block in SQL Server 2005

Der SQL Server 2005 unterstützt nun eine deutlich bessere Fehlerbehandlung unter T-SQL - ein Try/catch Block erlaubt ein Errorhandling. Die Handhabung ist eigentlich wie bei allen Try/catch-Blöchen die man z.B. aus C#, VB.NET oder Delphi kennt.

Hier ein klassisches Beispeil - divison durch 0:

BEGIN TRY
   DECLARE @X INT
   -- Divide by zero to generate Error
   SET @X = 1/0
END TRY
BEGIN CATCH

   SELECT ERROR_NUMBER() ERNumber,
   ERROR_SEVERITY() Error_Severity,
   ERROR_STATE() Error_State,
   ERROR_PROCEDURE() Error_Procedure,
   ERROR_LINE() Error_Line,
   ERROR_MESSAGE() Error_Message
END CATCH

Als Ergebnis bekommt man:

Error Detected
Err_Num Err_Sev Err_State Err_Proc Err_Line Err_Msg
------- ------- --------- -------------------- --------- --------------------------------
8134 16 1 NULL 4 Divide by zero error encountered.

Ziemlich cool und bei complexen SQL-Statements kann ddas sehr hilfreich sein!

Pingbacks and trackbacks (10)+

Kommentar schreiben