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 le texte du message de l’erreur qui a provoqué l’exécution du bloc CATCH d’une construction TRY...CATCH.
Conventions de la syntaxe Transact-SQL
Syntaxe
ERROR_MESSAGE ( )
Types de retour
nvarchar(4000)
Valeur renvoyée
Quand elle est appelée dans un bloc CATCH, la fonction ERROR_MESSAGE retourne le texte complet du message d’erreur qui a provoqué l’exécution du bloc CATCH. Le texte comprend les valeurs fournies pour tous les paramètres remplaçables (par exemple, les longueurs, les noms d’objets ou les heures).
ERROR_MESSAGE retourne NULL quand l’appel a lieu en dehors de l’étendue d’un bloc CATCH.
Notes
ERROR_MESSAGE prend en charge les appels à partir de n’importe quel emplacement dans l’étendue d’un bloc CATCH.
ERROR_MESSAGE retourne un message d’erreur pertinent, 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.
Dans des blocs CATCH imbriqués, ERROR_MESSAGE retourne le message 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_MESSAGE retourne le message de l’erreur qui a appelé le bloc CATCH interne. Si ERROR_MESSAGE s’exécute dans le bloc CATCH externe, elle retourne le message de l’erreur qui a appelé ce bloc CATCH externe.
Exemples
R. Utilisation de ERROR_MESSAGE dans un bloc CATCH
L’exemple suivant montre une instruction SELECT qui génère une erreur de division par zéro. Le bloc CATCH retourne le message d’erreur.
BEGIN TRY
-- Generate a divide-by-zero error.
SELECT 1/0;
END TRY
BEGIN CATCH
SELECT ERROR_MESSAGE() AS ErrorMessage;
END CATCH;
GO
Voici le jeu de résultats.
-----------
(0 row(s) affected)
ErrorMessage
----------------------------------
Divide by zero error encountered.
(1 row(s) affected)
B. Utilisation de ERROR_MESSAGE dans un bloc CATCH avec d'autres outils de traitement des erreurs
L’exemple suivant montre une instruction SELECT qui génère une erreur de division par zéro. Outre le message de l’erreur, le bloc CATCH retourne des informations relatives à 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)
Voir aussi
sys.messages (Transact-SQL)
ESSAYER... CATCH (Transact-SQL)
ERROR_LINE (Transact-SQL)
ERROR_MESSAGE (Transact-SQL)
ERROR_PROCEDURE (Transact-SQL)
ERROR_SEVERITY (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)