Sql-Server
如何在 Sql Server 上模擬 MSG = 0 的錯誤?
我需要在 Sql Server 上模擬錯誤:
“Msg 0, Level 20 A severe error occurred on the current command”
因為我們的開發人員必須在應用程序中處理它。
如何模擬/觸發這種錯誤?(我也可以在我的本地主機上嘗試)。
此錯誤由客戶端 API(而不是 SQL Server)返回,當發生諸如訪問衝突或關閉伺服器端連接等不良事件時。這就是為什麼消息 id 為零而不是
sys.messages
. ` Erland Sommarskog 在他的文章中稱這是一個錯誤的錯誤資訊。
RAISERROR
嚴重性為 20(需要WITH LOG
sysadmin 或更改跟踪權限)可能能夠模擬錯誤,具體取決於您使用的客戶端 API。執行以下命令後,我在 SSMS(使用 .NET 框架 SqlClient API)中看到錯誤以及其他錯誤消息。請注意,SQL 異常可能會生成多條錯誤消息,包括這條錯誤消息,因此您需要檢查為感興趣的錯誤返回的錯誤。RAISERROR('This is a severe error test',20,0) WITH LOG;