Logging
如何解決錯誤 600122,嚴重性 11,狀態 1 已引發
我的 SQL Server 2008 R2 一直在 SQL Server 日誌中記錄這些錯誤:
引發了錯誤 600122,嚴重性 11,狀態 1,但在 sys.messages 中未找到具有該錯誤號的消息。如果錯誤大於 50000,請確保使用 sp_addmessage 添加使用者定義的消息。
有些是:
引發了錯誤 400006,嚴重性 16,狀態 1,但在 sys.messages 中未找到具有該錯誤號的消息。如果錯誤大於 50000,請確保使用 sp_addmessage 添加使用者定義的消息。
我在伺服器事件日誌中也遇到了類似的錯誤,如下所示:
引發了錯誤 600122,嚴重性 11,狀態 1,但在 sys.messages 中未找到具有該錯誤號的消息。如果錯誤大於 50000,請確保使用 sp_addmessage 添加使用者定義的消息。
有人解決了嗎?因為它在我的 Prod 環境中,所以我想獲得更多資訊。
非常感謝!
它們是在您的程式碼中生成的,試試這個來找到它們
SELECT * FROM sys.sql_modules SM WHERE [definition] LIKE '%600122%' or [definition] LIKE '%400006%'
否則這也會帶來所有自定義錯誤
SELECT * FROM sys.sql_modules SM WHERE UPPER([definition]) LIKE '%RAISERROR%' or UPPER([definition]) LIKE '%THROW%'
https://docs.microsoft.com/en-us/sql/t-sql/language-elements/raiserror-transact-sql
使用者定義的錯誤消息的錯誤編號應大於 50000。當未指定 msg_id 時,RAISERROR 會引發錯誤編號為 50000 的錯誤消息。
一種解釋是有
RAISERROR
用於說日誌記錄的語句。DECLARE @i int = 600122; RAISERROR (@i,0,1) -- Logging
這裡
@i
用於通過消息 id 指定消息@i
,應該是RAISERROR ('%d',0,1,@i)