web-dev-qa-db-ja.com

SQL Serverの重大度で18より高いエラーを発生させる

重大度が18以下のユーザー定義エラーを簡単に発生させることができます。それより高い場合、このエラーが発生します

18より大きいエラー重大度レベルは、WITH LOGオプションを使用して、sysadminロールのメンバーのみが指定できます。

私はsysadminロールにアクセスできるので、WITH LOGオプションでエラーを発生させる構文を誰かが指定できます。ありがとう。

3
user159374

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以上の場合は接続が終了することに注意してください(CATCHにジャンプすることすらありません)。

4
EzLo

また、sp_addmessage sprocの使用中に@with_logパラメータを指定することもできます。

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