如何在Sql Server上模拟MSG = 0的错误?

ada*_*m.g 2 sql-server error-handling

我需要在Sql Server上模拟错误:

\n
\xe2\x80\x9cMsg 0, Level 20 A severe error occurred on the current command\xe2\x80\x9d\n
Run Code Online (Sandbox Code Playgroud)\n

因为我们的开发人员必须在应用程序中处理它。

\n

我怎样才能模拟/触发这种错误?(我也可以在我的本地主机上尝试)。

\n

Dan*_*man 6

当发生访问冲突或终止连接(导致服务器端的连接关闭)等不良情况时,此错误由客户端 API(而不是 SQL Server)返回。这就是为什么 中的消息 ID 为零而不是 1 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;
Run Code Online (Sandbox Code Playgroud)