From BOL 2005BEGIN TRY SELECT * FROM sys.messages WHERE message_id = 21;END TRYGO-- The previous GO breaks the script into two batches,-- generating syntax errors. The script runs if this GO-- is removed.BEGIN CATCH SELECT ERROR_NUMBER() AS ErrorNumber;END CATCH;OR USE AdventureWorks;GO-- Verify that the stored procedure does not exist.IF OBJECT_ID ('usp_GetErrorInfo', 'P') IS NOT NULL DROP PROCEDURE usp_GetErrorInfo;GO-- Create procedure to retrieve error information.CREATE PROCEDURE usp_GetErrorInfoAS SELECT ERROR_NUMBER() AS ErrorNumber, ERROR_SEVERITY() AS ErrorSeverity, ERROR_STATE() as ErrorState, ERROR_PROCEDURE() as ErrorProcedure, ERROR_LINE() as ErrorLine, ERROR_MESSAGE() as ErrorMessage;GOBEGIN TRY -- Generate divide-by-zero error. SELECT 1/0;END TRYBEGIN CATCH -- Execute the error retrieval routine. EXECUTE usp_GetErrorInfo;END CATCH;GO
Chirag