web-dev-qa-db-fra.com

Soulevez une erreur dans la gravité SQL Server supérieure à 18

Je peux facilement soulever des erreurs définies par l'utilisateur lorsque la gravité n'est pas supérieure à 18. Quand est supérieur, je reçois cette erreur

Les niveaux de gravité des erreurs supérieurs à 18 ne peuvent être spécifiés que par des membres du rôle sysadmin, à l'aide de l'option BOG.

J'ai accès au rôle Sysadmin, alors quelqu'un peut-il spécifier la syntaxe des erreurs de collecte d'une option de journal. Merci.

3
user159374

WITH est une clause facultative qui va à la fin de l'RAISERROR. Quelques exemples:

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

N'oubliez pas que les graves de 20 et plus termineront la connexion (ne sauteront même pas à un CATCH).

4
EzLo

Vous pouvez également spécifier le paramètre @with_log tout en utilisant SP_ADDMESSAGE SPROC

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