【问题标题】:Table of SQL Errors & Stored ProceduresSQL 错误和存储过程表
【发布时间】:2008-11-28 16:53:58
【问题描述】:

我在每个存储过程的末尾都有我在网上找到的这段代码:

ROLLBACK TRANSACTION

         PRINT '-----START: ERROR DETAILS-----'
         PRINT ERROR_NUMBER()
         PRINT ERROR_SEVERITY()
         PRINT ERROR_STATE()
         PRINT ERROR_PROCEDURE()
         PRINT ERROR_LINE()
         PRINT ERROR_MESSAGE()
         PRINT '-----END: ERROR DETAILS-----'

            DECLARE @prmErrmsg NVARCHAR(4000);
            DECLARE @prmErrSvr INT;

            SELECT @prmErrmsg = ERROR_MESSAGE()
                ,@prmErrSvr = ERROR_SEVERITY();

            INSERT INTO dbo.myErrors
                        ([ErrorMessage]
                        ,[ErrorSeverity]
                        ,[DateCreated])
                 VALUES
                        (@prmErrmsg
                        ,@prmErrSvr
                        ,GetutcDate())


            RAISERROR(@prmErrmsg,@prmErrSvr,1)

它正在向 myErrors 表写入条目,但它没有写入错误消息或错误严重性。

我的第一个问题是为什么?

我认为这与错误严重程度在一定范围内有关。

我如何告诉它总是记录详细的错误消息,无论严重程度如何?

【问题讨论】:

    标签: sql tsql stored-procedures


    【解决方案1】:

    根据MSDN,ERR​​OR_MESSAGE() 等仅设置在 TRY ... CATCH 语句的 CATCH 块内。

    【讨论】:

      猜你喜欢
      • 2013-05-17
      • 1970-01-01
      • 1970-01-01
      • 2015-06-14
      • 2015-11-19
      • 2014-08-23
      • 2014-01-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多