Instruction SQL Server Raiserror

Instruction SQL Server Raiserror
L'instruction Raiserror dans SQL Server vous permet de générer et d'afficher les messages d'erreur définis par l'utilisateur.

À l'aide de l'instruction Raiserror, vous pouvez créer des messages d'erreur personnalisés et les afficher dans vos applications. Les messages d'erreur générés par l'instruction Rauserror utiliseront le même format que les messages générés par le système.

Vous pouvez également définir divers paramètres, tels que la gravité et l'état des messages.

La syntaxe de l'instruction Raiserror est comme indiqué ci-dessous:

Raiserror (message_id | message_content | @local_variable
Gravité, état
Avec option
));

Décomposons la syntaxe de la déclaration Raiserror:

  1. Message_id - Le message_id fait référence à un message de définition de l'utilisateur que la procédure SP_AddMessage utilise pour stocker le message dans le SYS.Messages Affichage du catalogue. Cette valeur devrait être supérieure à 50 000.
  2. Message_content - Il s'agit du contenu réel du message d'erreur. Le message peut contenir jusqu'à 2 047 caractères. Si le message d'erreur dépasse cette valeur, SQL Server affichera uniquement 2 044 caractères, puis ajouter des ellipsis pour afficher la troncature du message. Le format du message est similaire à celui de la fonction printf dans la programmation C.
  3. @local_variable - Toute variable de tout type de caractères tenant une chaîne formatée dans un style identique comme le message_content.
  4. Gravité - Définit le niveau de gravité du message affiché par la déclaration Raiserror. Il s'agit d'une valeur entière allant entre 0 et 25, chaque valeur indiquant un niveau de gravité élevé. Gardez à l'esprit que toute valeur de gravité entre 20 et 25 est traitée comme mortelle. Si une erreur fatale est reçue, SQL Server termine la connexion du client et enregistre le message d'erreur. Pour spécifier un niveau de gravité supérieur à 18, vous devez avoir des autorisations d'altération de trace et être membre du rôle sysadmin.
  5. État - c'est une valeur entière qui varie entre 0 et 255. Les États peuvent aider à identifier la section spécifique augmentant les erreurs.
  6. Avec l'option - ce paramètre est utilisé pour modifier comment les fonctions de l'instruction Raiserror. Les options acceptées incluent:
    1. Avec le journal - affiche le message à l'utilisateur et enregistrer l'erreur dans les journaux d'erreur.
    2. Avec SetError - définit automatiquement les valeurs d'erreur Error_number et @@ à Message_ID, sans tenir compte du niveau d'erreur spécifié.
    3. Avec Nowait - montre le message d'erreur au client instantanément.

Indice: Si aucune valeur pour le paramètre Message_ID n'est définie, l'instruction Raiserror renvoie une erreur avec un ID de 50 000. Par conséquent, assurez-vous que tous vos messages_ids sont supérieurs à cette valeur.

Indice: Le niveau de gravité défini par la procédure SP_AddMessage est remplacé par celui défini par la déclaration Raiserror.

Créer des messages ad hoc avec la procédure SP_ADDMessage

Pour ajouter manuellement un message d'erreur au SYS.Affichage du catalogue des messages, utilisez la procédure SP_ADDMessage comme indiqué dans l'exemple suivant:

Exec sp_addmessage
@msgnum = 50001,
@severity = 10,
@msgtext = '[ERROR]… Ceci est une erreur de test Mess'ge';

Pour afficher le message dans la vue du catalogue:

Sélectionner * dans SYS.messages où messages_id = 50001;

La requête doit revenir comme indiqué:

Pour exécuter le message, utilisez l'instruction Rauserror comme indiqué:

Raiserror (50001,10,1);

La requête doit revenir:

[Erreur]… Ceci est un message d'erreur de test

Pour supprimer un message du SYS.Affichage du catalogue des messages, utilisez le sp_dropMessage comme indiqué:

Exec SP_DROPMESSAGE @MSGNUM = 50001;

Énoncé Raiserror dans Bloc Try / Catch

Nous pouvons utiliser l'instruction Raiserror pour lancer une erreur dans un bloc Try / Catch, comme indiqué dans l'exemple de requête suivante:

Commencer à essayer
Raiserror («Erreur dans le bloc d'essai», 15, 1);
Fin d'essai
Commencer à attraper
Déclarer @errormsg nvarchar (4000);
Déclarer @Severity int;
Déclarer @e_state int;
SÉLECTIONNER
@errormsg = error_message (),
@ Severity = error_severity (),
@e_state = error_state ();
Raiserror (@errormsg, @severity, @e_state);
Capture

Si nous exécutons la requête, nous devrions voir le message d'erreur suivant:

MSG 50000, niveau 15, État 1, ligne 12
Erreur dans le bloc d'essai

Conclusion

Dans cet article, vous avez appris à utiliser l'instruction Rauserror dans SQL Server pour générer des messages d'erreur personnalisés. Cela comprend la création de messages ad hoc avec la procédure SP_AddMessage et l'utilisation de l'instruction Raiserror dans le bloc Try / Catch. Nous espérons que vous avez trouvé cet article utile. Consultez d'autres articles sur les conseils Linux pour plus de conseils et d'informations.