Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
S’applique à :SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Point de terminaison d’analytique SQL dans Microsoft Fabric
Entrepôt dans Microsoft Fabric
Base de données SQL dans Microsoft Fabric
Cette fonction retourne la valeur de gravité de l’erreur où une erreur se produit, si cette erreur a provoqué l’exécution CATCH du bloc d’une TRY...CATCH construction.
Conventions de la syntaxe Transact-SQL
Syntaxe
ERROR_SEVERITY ( )
Types de retour
Int
Valeur retournée
Lorsqu’elle est appelée dans un CATCH bloc où une erreur se produit, ERROR_SEVERITY retourne la valeur de gravité de l’erreur qui a provoqué l’exécution du CATCH bloc.
ERROR_SEVERITY retourne NULL si elle est appelée en dehors de l’étendue d’un CATCH bloc.
Remarques
ERROR_SEVERITY prend en charge les appels n’importe où dans l’étendue d’un CATCH bloc.
ERROR_SEVERITY retourne la valeur de gravité d’une erreur, quel que soit le nombre de fois où elle s’exécute, ou l’emplacement de son exécution dans l’étendue du bloc CATCH. Cela contraste avec une fonction comme @@ERROR, qui retourne uniquement un numéro d’erreur dans l’instruction immédiatement après celle qui provoque une erreur.
ERROR_SEVERITY fonctionne généralement dans un bloc CATCH imbriqué.
ERROR_SEVERITY retourne la valeur de gravité d’erreur spécifique à l’étendue du bloc CATCH qui a référencé ce bloc CATCH. Par exemple, le CATCH bloc d’une construction externe TRY...CATCH peut avoir une construction interne TRY...CATCH . À l’intérieur de ce bloc CATCH interne, ERROR_SEVERITY retourne la valeur de gravité de l’erreur qui a appelé le bloc CATCH interne. Si ERROR_SEVERITY s’exécute dans le bloc CATCH externe, elle retourne la valeur de gravité de l’erreur qui a appelé ce bloc CATCH externe.
Exemples : Azure Synapse Analytics et Analytics Platform System (PDW)
R. Utiliser ERROR_SEVERITY dans un bloc CATCH
L’exemple suivant illustre une procédure stockée qui génère une erreur de division par zéro.
ERROR_SEVERITY retourne la valeur de gravité de cette erreur.
BEGIN TRY
-- Generate a divide-by-zero error.
SELECT 1 / 0;
END TRY
BEGIN CATCH
SELECT ERROR_SEVERITY() AS ErrorSeverity;
END CATCH
GO
Voici le jeu de résultats.
-----------
(0 row(s) affected)
ErrorSeverity
-------------
16
(1 row(s) affected)
B. Utiliser ERROR_SEVERITY dans un bloc CATCH avec d’autres outils de gestion des erreurs
L’exemple suivant montre une instruction SELECT qui génère une erreur de division par zéro. La procédure stockée retourne des informations sur cette erreur.
BEGIN TRY
-- Generate a divide-by-zero error.
SELECT 1 / 0;
END TRY
BEGIN CATCH
SELECT ERROR_NUMBER() AS ErrorNumber,
ERROR_SEVERITY() AS ErrorSeverity,
ERROR_STATE() AS ErrorState,
ERROR_PROCEDURE() AS ErrorProcedure,
ERROR_LINE() AS ErrorLine,
ERROR_MESSAGE() AS ErrorMessage;
END CATCH
GO
Voici le jeu de résultats.
-----------
(0 row(s) affected)
ErrorNumber ErrorSeverity ErrorState ErrorProcedure ErrorLine ErrorMessage
----------- ------------- ----------- --------------- ----------- ----------------------------------
8134 16 1 NULL 4 Divide by zero error encountered.
(1 row(s) affected)
Contenu connexe
- sys.messages
- Gravité des erreurs du moteur de base de données
- ESSAYER... CATCH (Transact-SQL)
- ERROR_LINE (Transact-SQL)
- ERROR_MESSAGE (Transact-SQL)
- ERROR_NUMBER (Transact-SQL)
- ERROR_PROCEDURE (Transact-SQL)
- ERROR_STATE (Transact-SQL)
- RAISERROR (Transact-SQL)
- @@ERROR (Transact-SQL)
- Informations de référence sur les erreurs et les événements (moteur de base de données)