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 strumenti analitici (PDW)
Endpoint di analisi SQL in Microsoft Fabric
Warehouse in Microsoft Fabric
Questa funzione restituisce il valore di gravità dell'errore in cui si verifica un errore, se l'errore ha causato l'esecuzione del CATCH
blocco di un TRY...CATCH
costrutto.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
ERROR_SEVERITY ( )
Tipi restituiti
Int
Valore restituito
Quando viene chiamato in un CATCH
blocco in cui si verifica un errore, ERROR_SEVERITY
restituisce il valore di gravità dell'errore che ha causato l'esecuzione del CATCH
blocco.
ERROR_SEVERITY
restituisce NULL
se viene chiamato all'esterno dell'ambito di un CATCH
blocco.
Osservazioni:
ERROR_SEVERITY
supporta le chiamate ovunque all'interno dell'ambito di un CATCH
blocco.
ERROR_SEVERITY
restituisce il valore di gravità di un errore, indipendentemente dal numero di esecuzioni o dalla posizione in cui viene eseguita nell'ambito del blocco CATCH
. Questo contrasto con una funzione come @@ERROR, che restituisce solo un numero di errore nell'istruzione immediatamente successivo a quello che causa un errore.
ERROR_SEVERITY
opera in genere in un blocco CATCH
annidato.
ERROR_SEVERITY
restituisce il valore di gravità dell'errore specifico dell'ambito del blocco CATCH
che ha fatto riferimento a tale blocco CATCH
. Ad esempio, il CATCH
blocco di un costrutto esterno TRY...CATCH
potrebbe avere un costrutto interno TRY...CATCH
. In tale blocco CATCH
interno ERROR_SEVERITY
restituisce il valore di gravità dell'errore che ha richiamato il blocco CATCH
interno. Se ERROR_SEVERITY
viene eseguito nel blocco CATCH
esterno, restituisce il valore di gravità dell'errore che ha richiamato il blocco CATCH
esterno.
Esempi: Azure Synapse Analytics e Piattaforma di strumenti analitici (PDW)
R. Usare ERROR_SEVERITY in un blocco CATCH
In questo esempio viene illustrata una stored procedure che genera un errore di divisione per zero.
ERROR_SEVERITY
restituisce il valore di gravità di tale errore.
BEGIN TRY
-- Generate a divide-by-zero error.
SELECT 1 / 0;
END TRY
BEGIN CATCH
SELECT ERROR_SEVERITY() AS ErrorSeverity;
END CATCH
GO
Il set di risultati è il seguente.
-----------
(0 row(s) affected)
ErrorSeverity
-------------
16
(1 row(s) affected)
B. Usare ERROR_SEVERITY 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. La stored procedure restituisce informazioni sull'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)
Contenuti correlati
- sys.messages
- Gravità degli errori del motore di database
- PROVARE... 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)
- Informazioni di riferimento su errori ed eventi (motore di database)