Writing logs in SQL Server:
First create a table to log the system exceptions occurred:
CREATE TABLE [dbo].[tblExceptionLog](
[Id] [int] IDENTITY(1, 1) NOT NULL,
[ErrorLine] [int] NULL,
[ErrorMessage] [nvarchar](4000) NULL,
[ErrorNumber] [int] NULL,
[ErrorProcedure] [nvarchar](128) NULL,
[ErrorSeverity] [int] NULL,
[ErrorState] [int] NULL,
[DateErrorRaised] [datetime] NULL
)
Create a stored procedure: This procedure will insert the exception log in case of error will come
Create PROC [dbo].[uspGetErrorInfo]
AS
BEGIN
INSERT INTO tblExceptionLog(
ErrorLine,
ErrorMessage,
ErrorNumber,
ErrorProcedure,
ErrorSeverity,
ErrorState,
DateErrorRaised
)
SELECT
ERROR_LINE () AS ErrorLine,
Error_Message() AS ErrorMessage,
Error_Number() AS ErrorNumber,
Error_Procedure() AS 'Proc',
Error_Severity() AS ErrorSeverity,
Error_State() AS ErrorState,
GETDATE () AS DateErrorRaised
END
GO
Use the following approach to log the exception:
BEGIN TRY
BEGIN TRAN
--SQL Statements
COMMIT TRAN
END TRY
BEGIN CATCH
--Print 'Catching Exceptio Here'
IF @@TRANCOUNT > 0
ROLLBACK TRAN
EXEC dbo.uspGetErrorInfo
END CATCH
First create a table to log the system exceptions occurred:
CREATE TABLE [dbo].[tblExceptionLog](
[Id] [int] IDENTITY(1, 1) NOT NULL,
[ErrorLine] [int] NULL,
[ErrorMessage] [nvarchar](4000) NULL,
[ErrorNumber] [int] NULL,
[ErrorProcedure] [nvarchar](128) NULL,
[ErrorSeverity] [int] NULL,
[ErrorState] [int] NULL,
[DateErrorRaised] [datetime] NULL
)
Create a stored procedure: This procedure will insert the exception log in case of error will come
Create PROC [dbo].[uspGetErrorInfo]
AS
BEGIN
INSERT INTO tblExceptionLog(
ErrorLine,
ErrorMessage,
ErrorNumber,
ErrorProcedure,
ErrorSeverity,
ErrorState,
DateErrorRaised
)
SELECT
ERROR_LINE () AS ErrorLine,
Error_Message() AS ErrorMessage,
Error_Number() AS ErrorNumber,
Error_Procedure() AS 'Proc',
Error_Severity() AS ErrorSeverity,
Error_State() AS ErrorState,
GETDATE () AS DateErrorRaised
END
GO
Use the following approach to log the exception:
BEGIN TRY
BEGIN TRAN
--SQL Statements
COMMIT TRAN
END TRY
BEGIN CATCH
--Print 'Catching Exceptio Here'
IF @@TRANCOUNT > 0
ROLLBACK TRAN
EXEC dbo.uspGetErrorInfo
END CATCH
No comments:
Post a Comment