SQL Server RAISERROR (Français)

résumé: dans ce tutoriel, vous apprendrez comment utiliser L’instruction SQL ServerRAISERROR pour générer des messages d’erreur définis par l’utilisateur.

Si vous développez une nouvelle application, vous devez utiliser l’instructionTHROW à la place.,

présentation de L’instruction SQL Server RAISEERROR

l’instructionRAISERROR vous permet de générer vos propres messages d’erreur et de renvoyer ces messages à l’application en utilisant le même format qu’un message d’erreur système ou d’avertissement généré par le moteur de base de données SQL Server. En outre, l’instructionRAISERROR vous permet de définir un id de message spécifique, un niveau de gravité et un État pour les messages d’erreur.,

L’exemple suivant illustre la syntaxe de la balise RAISERROR instruction:

nous allons examiner la syntaxe de la balise RAISERROR pour une meilleure compréhension.

message_id

Le message_id est une erreur définie par l’utilisateur nombre de messages stockés dans le sys.messages affichage catalogue.

Pour ajouter un nouvel utilisateur message d’erreur défini par numéro, vous utilisez la procédure stockée sp_addmessage. Un numéro de message d’erreur défini par l’utilisateur doit être supérieur à 50 000., Par défaut, l’instructionRAISERROR utilise lemessage_id 50 000 pour générer une erreur.,

L’instruction suivante ajoute un message d’erreur personnalisé à la balise sys.messages vue:

Pour vérifier la pochette, vous utilisez la requête suivante:

Code language: SQL (Structured Query Language) (sql)

Pour utiliser cette message_id, vous exécutez la balise RAISEERROR instruction comme suit:

Code language: SQL (Structured Query Language) (sql)

Voici le résultat:

Code language: SQL (Structured Query Language) (sql)

Pour supprimer un message de la balise sys.messages, vous utilisez la procédure stockée sp_dropmessage., Par exemple, l’instruction suivante supprime le message id 50005:

Code language: SQL (Structured Query Language) (sql)

message_text

Le message_text est un message défini par l’utilisateur avec un formatage comme la fonction printf dans la bibliothèque standard C. Le message_text peut contenir jusqu’à 2 047 caractères, les 3 derniers caractères sont réservés aux points de suspension (…). Si message_text contient 2048 ou plus, il sera tronqué et complété par des points de suspension.,

Lorsque vous spécifiez le message_text, le RAISERROR instruction utilise message_id 50000 à élever le message d’erreur.

L’exemple suivant utilise la balise RAISERROR déclaration de lever une erreur avec un message texte:

Code language: SQL (Structured Query Language) (sql)

La sortie devrait ressembler à ceci:

Code language: SQL (Structured Query Language) (sql)

gravité

Le niveau de gravité est un nombre entier compris entre 0 et 25, avec chaque niveau représentant la gravité de l’erreur.

Code language: SQL (Structured Query Language) (sql)

état

l’état est un entier compris entre 0 et 255., Si vous déclenchez la même erreur définie par l’utilisateur à plusieurs emplacements, vous pouvez utiliser un numéro d’état unique pour chaque emplacement pour faciliter la recherche de la section du code à l’origine des erreurs. Pour la plupart des implémentations, vous pouvez utiliser 1.

AVEC l’option

L’option peut être LOG, NOWAIT ou SETERROR:

  • WITH LOG journaux de l’erreur dans le journal d’erreur et le journal d’application pour l’instance de SQL Server Base de données du Moteur.,
  • WITH NOWAIT envoie le message d’erreur au client immédiatement.
  • WITH SETERROR définit la balise ERROR_NUMBER et @@ERROR valeurs à message_id ou 50000, quel que soit le niveau de gravité.

SQL Server RAISERROR examples

prenons quelques exemples d’utilisation de l’instructionRAISERROR pour mieux comprendre.,

A) Utilisation de SQL Server RAISERROR avec TRY CATCH block example

dans cet exemple, nous utilisons leRAISERROR dans un blocTRY pour faire sauter l’exécution vers le blocCATCH associé. À l’intérieur du bloc CATCH, nous utilisons le bloc RAISERROR pour renvoyer les informations d’erreur qui ont appelé le bloc CATCH.,

Voici la sortie:

Code language: SQL (Structured Query Language) (sql)

B) Utilisation de L’instruction SQL Server RAISERROR avec un exemple de texte de message dynamique

l’exemple suivant montre comment utiliser une variable locale pour fournir le texte de message pour une RAISERROR= »fcc4e2ba27″>

quand utiliser l’instruction RAISERROR

vous utilisez l’instructionRAISERROR dans les scénarios suivants:

  • dépanner le code Transact-SQL.
  • renvoie des messages contenant du texte variable.
  • examinez les valeurs des données.,
  • fait passer l’exécution d’un blocTRY au blocCATCH associé.
  • renvoie les informations d’erreur du blocCATCH aux appelants, par lot ou par application.

Dans ce tutoriel, vous apprendrez comment utiliser le Serveur SQL RAISERROR déclaration de générer définis par l’utilisateur messages d’erreur.

Share

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *