1) The Code -
RAISERROR('Test of custom error logging', 18, 1) WITH LOG
2) Management Studio Results
3) Corresponding entry in the SQL Server log
Expanding on this we can pass the genuine error message through, like this -
1) The Code -
BEGIN TRY BEGIN TRANSACTION -- Do action that we want rolled back if an error occurs DELETE Person.Address WHERE AddressID = 1 COMMIT END TRY BEGIN CATCH IF @@TRANCOUNT > 0 ROLLBACK DECLARE @ErrorMessage NVARCHAR(4000) DECLARE @ErrorSeverity INT SELECT @ErrorMessage = ERROR_MESSAGE(), @ErrorSeverity = ERROR_SEVERITY() RAISERROR(@ErrorMessage, @ErrorSeverity, 1) WITH LOG END CATCH
2) The SQL log -
You can do a variety of Error logging methods here in this way -
1 ) send email
2 ) write to table
3 ) log to sql via RAISERROR (as abover)
You have access to the following error functions -
ERROR_NUMBER() - returns the number of the error.
ERROR_SEVERITY() - returns the severity.
ERROR_STATE() - returns the error state number.
ERROR_PROCEDURE() - returns the name of the stored procedure or trigger where the error occurred.
ERROR_LINE() - returns the line number inside the routine that caused the error.
ERROR_MESSAGE() - returns the complete text of the error message. The text includes the values supplied for any substitutable parameters, such as lengths, object names, or times.
link : http://technet.microsoft.com/en-us/library/ms175976.asp
No comments:
Post a Comment