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 baliseERROR_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 bloc
TRY
au blocCATCH
associé. - renvoie les informations d’erreur du bloc
CATCH
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.