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.

Syntaxe

ERROR_SEVERITY()

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.

Type des valeurs renvoyées

int

Exemples

A. Utilisation de ERROR_SEVERITY dans un bloc CATCH

L'exemple de code suivant illustre 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 de code suivant illustre 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

Voir aussi

Référence

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)

Autres ressources

Récupération d'informations d'erreur dans Transact-SQL
Niveaux de gravité des erreurs du moteur de base de données
Utilisation de TRY...CATCH dans Transact-SQL
Utilisation de RAISERROR
Utilisation de @@ERROR

Aide et Informations

Assistance sur SQL Server 2005