[英]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.