BEGIN TRY --code END TRY BEGIN CATCH DECLARE @ErrorSeverity int, @ErrorNumber int, @ErrorMessage nvarchar(4000), @ErrorState int, @ErrorLine int, @ErrorProc nvarchar(200) -- Grab error information from SQL functions SET @ErrorSeverity = ERROR_SEVERITY() SET @ErrorNumber = ERROR_NUMBER() SET @ErrorMessage = ERROR_MESSAGE() SET @ErrorState = ERROR_STATE() SET @ErrorLine = ERROR_LINE() SET @ErrorProc = ERROR_PROCEDURE() SET @ErrorMessage = 'Can not register a new person' + CHAR(13) + 'SQL Server Error Message is: ' + CAST(@ErrorNumber AS VARCHAR(10)) + ' in procedure: ' + @ErrorProc + ' Line: ' + CAST(@ErrorLine AS VARCHAR(10)) + ' Error text: ' + @ErrorMessage -- Not all errors generate an error state, to set to 1 if it's zero IF @ErrorState = 0 SET @ErrorState = 1 RAISERROR (@ErrorMessage , @ErrorSeverity, @ErrorState, @ErrorNumber) -- If the error renders the transaction as uncommittable, we must rollback IF XACT_STATE() < 0 ROLLBACK TRANSACTION END CATCH RETURN @@Error