簡體   English   中英

SQL錯誤和存儲過程表

[英]Table of SQL Errors & Stored Procedures

在每個存儲過程的結尾,我都有在網上找到的這段代碼:

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表中,但未寫入錯誤消息或錯誤嚴重性。

我的第一個問題是為什么?

我相信錯誤嚴重性在一定范圍內是有好處的。

我如何告訴它始終記錄詳細的錯誤消息,而不管其嚴重程度如何?

根據MSDN ,僅在TRY ... CATCH語句的CATCH塊內設置ERROR_MESSAGE()等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM