我可以轻松地在严重性不高于 18 的情况下引发用户定义的错误。当更高时,我收到此错误
大于 18 的错误严重级别只能由 sysadmin 角色的成员使用 WITH LOG 选项指定。
我有权访问 sysadmin 角色,所以有人可以指定使用 LOG 选项引发错误的语法。谢谢。
WITH
是位于RAISERROR
.结尾的可选子句。几个例子:
RAISERROR('Oops', 10, 1)
RAISERROR('Oops', 10, 1) WITH NOWAIT
RAISERROR('Oops', 10, 1) WITH SETERROR
RAISERROR('Oops', 19, 1) -- Fails with "Error severity levels greater than 18..."
RAISERROR('Oops', 19, 1) WITH LOG -- OK
Run Code Online (Sandbox Code Playgroud)
请记住,20 及以上的严重性将终止连接(甚至不会跳转到 a CATCH
)。