Partager via


ERROR_SEVERITY (Transact-SQL)

Renvoie le degré de gravité de l'erreur qui a engendré l'exécution du bloc CATCH d'une structure TRY…CATCH.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

ERROR_SEVERITY ( )

Type des valeurs renvoyées

int

Valeur de retour

Lorsqu'elle est appelée dans un bloc CATCH, elle renvoie le degré de gravité du message d'erreur à l'origine de l'exécution du bloc CATCH.

Renvoie la valeur NULL si elle est appelé en dehors d'un bloc CATCH.

Notes

ERROR_SEVERITY peut être appelée depuis n'importe quel emplacement dans le champ d'un bloc CATCH.

ERROR_SEVERITY renvoie le degré de gravité de l'erreur, indépendamment du nombre d'exécutions ou de l'endroit où elle est exécutée dans le champ du bloc CATCH. En revanche, des fonctions telles que @@ERROR renvoient uniquement le numéro d'erreur dans l'instruction qui suit celle à l'origine d'une erreur ou dans la première instruction d'un bloc CATCH.

Dans les blocs CATCH imbriqués, ERROR_SEVERITY renvoie la gravité d'erreur propre au champ du bloc CATCH dans lequel elle est référencée. Par exemple, le bloc CATCH d'une structure TRY...CATCH externe peut avoir une structure TRY...CATCH imbriquée. Dans un bloc CATCH imbriqué, ERROR_SEVERITY renvoie le degré de gravité depuis l'erreur qui a appelé ce bloc. Si ERROR_SEVERITY est exécutée dans le bloc CATCH externe, elle renvoie le degré de gravité à partir de l'erreur qui a appelé ce bloc CATCH.

Exemples

A. Utilisation de ERROR_SEVERITY dans un bloc CATCH

L'exemple suivant montre une instruction SELECT qui génère une erreur de division par zéro. La gravité de l'erreur est renvoyée.

USE AdventureWorks;
GO

BEGIN TRY
    -- Generate a divide-by-zero error.
    SELECT 1/0;
END TRY
BEGIN CATCH
    SELECT ERROR_SEVERITY() AS ErrorSeverity;
END CATCH;
GO

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. Outre le degré de gravité, la procédure renvoie également les informations relatives à l'erreur.

USE AdventureWorks;
GO

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