Sql-Server

在 sql server 嚴重性高於 18 時引發錯誤

  • August 29, 2018

我可以輕鬆地引發嚴重性不高於 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

請記住,20 及以上的嚴重性將終止連接(甚至不會跳轉到 a CATCH)。

您還可以在使用 sp_addmessage sproc 時指定 @with_log 參數

sp_addmessage 50001, 19, 'Test Message', @with_log='True'

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