ERROR_SEVERITY (Transact-SQL)
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL analytics endpoint in Microsoft Fabric Warehouse in Microsoft Fabric
Cette fonction retourne la valeur de gravité de l’erreur là où une erreur se produit, si cette erreur a entraîné l’exécution du bloc CATCH d’une construction TRY...CATCH.
Conventions de la syntaxe Transact-SQL
Syntaxe
ERROR_SEVERITY ( )
Types de retour
int
Valeur de retour
Quand elle est appelée dans un bloc CATCH où une erreur se produit, ERROR_SEVERITY
retourne la valeur de gravité de l’erreur à l’origine de l’exécution du bloc CATCH
.
ERROR_SEVERITY
retourne NULL si l’appel a lieu en dehors de l’étendue d’un bloc CATCH.
Remarques
ERROR_SEVERITY
prend en charge les appels à partir de n’importe quel emplacement dans l’étendue d’un bloc CATCH.
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
. Ce comportement contraste avec celui d’une fonction comme @@ERROR, qui retourne uniquement un numéro d’erreur dans l’instruction immédiatement après celle qui a provoqué 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 bloc CATCH
d’une construction TRY...CATCH externe peut comporter une construction TRY...CATCH
interne. À 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. Utilisation de 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 obtenu.
-----------
(0 row(s) affected)
ErrorSeverity
-------------
16
(1 row(s) affected)
B. Utilisation de 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 obtenu.
-----------
(0 row(s) affected)
ErrorNumber ErrorSeverity ErrorState ErrorProcedure ErrorLine ErrorMessage
----------- ------------- ----------- --------------- ----------- ----------------------------------
8134 16 1 NULL 4 Divide by zero error encountered.
(1 row(s) affected)
Voir aussi
sys.messages (Transact-SQL)
TRY...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)
Références relatives aux erreurs et aux événements (moteur de base de données)