Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Database SQL di Azure
Istanza gestita di SQL di Azure
Azure Synapse Analytics
Piattaforma di analisi (PDW)
Endpoint di analisi SQL in Microsoft Fabric
Magazzino in Microsoft Fabric
Database SQL in Microsoft Fabric
Questa funzione restituisce il testo del messaggio dell'errore che ha causato l'esecuzione del blocco CATCH di un costrutto TRY...CATCH.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
ERROR_MESSAGE ( )
Tipi restituiti
nvarchar(4000)
Valore restituito
Quando viene chiamata in un blocco CATCH, ERROR_MESSAGE restituisce il testo completo del messaggio di errore che ha causato l'esecuzione del blocco CATCH. Il testo include i valori forniti da qualsiasi parametro sostituibile, ad esempio lunghezze, nomi di oggetti oppure orari.
ERROR_MESSAGE restituisce NULL quando viene chiamata all'esterno dell'ambito di un blocco CATCH.
Osservazioni:
ERROR_MESSAGE supporta le chiamate da un qualsiasi punto nell'ambito di un blocco CATCH.
ERROR_MESSAGE restituisce un messaggio di errore pertinente indipendentemente dal numero di esecuzioni o dalla posizione in cui viene eseguita nell'ambito del blocco CATCH. Questo tipo di comportamento è in contrasto con una funzione come @@ERROR, che restituisce solo un numero di errore nell'istruzione immediatamente successiva a quella che ha provocato un errore.
Nei blocchi CATCH annidati ERROR_MESSAGE restituisce il messaggio di errore specifico dell'ambito del blocco CATCH che ha fatto riferimento a tale blocco CATCH. Ad esempio, il blocco CATCH di un costrutto esterno TRY...CATCH potrebbe includere un costrutto TRY...CATCH interno. In tale blocco CATCH interno ERROR_MESSAGE restituisce il messaggio dall'errore che ha richiamato il blocco CATCH interno. Se ERROR_MESSAGE viene eseguito nel blocco CATCH esterno, restituisce il messaggio dall'errore che ha richiamato il blocco CATCH esterno.
Esempi
R. Utilizzo di ERROR_MESSAGE in un blocco CATCH
In questo esempio viene illustrata un'istruzione SELECT che genera un errore di divisione per zero. Il blocco CATCH restituisce il messaggio di errore.
BEGIN TRY
-- Generate a divide-by-zero error.
SELECT 1/0;
END TRY
BEGIN CATCH
SELECT ERROR_MESSAGE() AS ErrorMessage;
END CATCH;
GO
Il set di risultati è il seguente.
-----------
(0 row(s) affected)
ErrorMessage
----------------------------------
Divide by zero error encountered.
(1 row(s) affected)
B. Utilizzo di ERROR_MESSAGE in un blocco CATCH con altri strumenti di gestione degli errori
In questo esempio viene illustrata un'istruzione SELECT che genera un errore di divisione per zero. Con il messaggio di errore, il blocco CATCH restituisce le informazioni su tale errore.
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
Il set di risultati è il seguente.
-----------
(0 row(s) affected)
ErrorNumber ErrorSeverity ErrorState ErrorProcedure ErrorLine ErrorMessage
----------- ------------- ----------- --------------- ---------- ----------------------------------
8134 16 1 NULL 4 Divide by zero error encountered.
(1 row(s) affected)
Vedi anche
sys.messages (Transact-SQL)
PROVARE... CATCH (Transact-SQL)
ERROR_LINE (Transact-SQL)
ERROR_MESSAGE (Transact-SQL)
ERROR_PROCEDURE (Transact-SQL)
GRAVITÀ_ERRORE (Transact-SQL)
ERROR_STATE (Transact-SQL)
RAISERROR (Transact-SQL)
@@ERROR (Transact-SQL)
Guida di riferimento a errori ed eventi (motore di database)