Sql-Server

如何在 Sql Server 上模擬 MSG = 0 的錯誤?

  • February 10, 2022

我需要在 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 LOGsysadmin 或更改跟踪權限)可能能夠模擬錯誤,具體取決於您使用的客戶端 API。執行以下命令後,我在 SSMS(使用 .NET 框架 SqlClient API)中看到錯誤以及其他錯誤消息。請注意,SQL 異常可能會生成多條錯誤消息,包括這條錯誤消息,因此您需要檢查為感興趣的錯誤返回的錯誤。

RAISERROR('This is a severe error test',20,0) WITH LOG;

引用自:https://dba.stackexchange.com/questions/307280