SQLSERVER 打印错误日志
CREATE PROCEDURE [dbo].[PrintError]
AS
BEGIN
SET NOCOUNT ON;
PRINT 'ErrorNumber : ' +CONVERT(varchar(50), ERROR_NUMBER())
PRINT 'ErrorSeverity : ' + CONVERT(varchar(5), ERROR_SEVERITY())
PRINT 'ErrorState :' + CONVERT(varchar(5), ERROR_STATE())
PRINT 'ErrorProcedure :' + ISNULL(ERROR_PROCEDURE(), '-')
PRINT 'ErrorLine :' + CONVERT(varchar(5), ERROR_LINE());
PRINT 'ErrorMessage :' + ERROR_MESSAGE();
END;
使用方法
CREATE OR ALTER PROCEDURE [dbo].[PrintErrorTest]
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRY
BEGIN TRANSACTION
COMMIT
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
BEGIN
ROLLBACK
END
EXEC pro_ErrorLog
END CATCH
END ;
输出错误日志
DELETE: 1023 ROWS
[2021-05-21 14:17:39] [S0001] ErrorNumber : 2627
[2021-05-21 14:17:39] [S0001] ErrorSeverity : 14
[2021-05-21 14:17:39] [S0001] ErrorState :1
[2021-05-21 14:17:39] [S0001] ErrorProcedure :P01_PrintError_TEST
[2021-05-21 14:17:39] [S0001] ErrorLine :13
[2021-05-21 14:17:39] [S0001] ErrorMessage :Violation of PRIMARY KEY constraint 'printerrortest_pk'. Cannot insert duplicate key in object 'dbo.printErrorTEST'. The duplicate key value is (75d466f4-225f-48f2-9541-7ee29401c7a5).
[2021-05-21 14:17:39] completed in 99 ms