Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL-Datenbank
Verwaltete Azure SQL-Instanz
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-Analyseendpunkt in Microsoft Fabric
Lagerhaus in Microsoft Fabric
SQL-Datenbank in Microsoft Fabric
Diese Funktion gibt den Schweregrad des Fehlers zurück, bei dem ein Fehler auftritt, wenn dieser Fehler den CATCH Block eines TRY...CATCH Konstrukts ausgeführt hat.
Transact-SQL-Syntaxkonventionen
Syntax
ERROR_SEVERITY ( )
Rückgabetypen
Int
Rückgabewert
Wenn ein Fehler in einem CATCH Block aufgerufen wird, in dem ein Fehler auftritt, wird der Schweregrad des Fehlers zurückgegeben, der dazu führte, ERROR_SEVERITY dass der CATCH Block ausgeführt wurde.
ERROR_SEVERITY gibt zurück NULL , wenn er außerhalb des Bereichs eines CATCH Blocks aufgerufen wird.
Bemerkungen
ERROR_SEVERITY unterstützt Anrufe an beliebiger Stelle innerhalb des Bereichs eines CATCH Blocks.
ERROR_SEVERITY gibt unabhängig von der Anzahl der Aufrufe und dem Bereich des CATCH-Blocks den Wert des Fehlerschweregrads zurück. Dies steht im Gegensatz zu einer Funktion wie @@ERROR, die nur eine Fehlernummer in der Anweisung zurückgibt, die unmittelbar auf den Fehler folgt, der einen Fehler verursacht.
ERROR_SEVERITY arbeitet in der Regel in einem geschachtelten CATCH-Block.
ERROR_SEVERITY gibt den Wert des Fehlerschweregrads für den entsprechenden Bereich des CATCH-Blocks zurück, der auf den CATCH-Block verwiesen hat. Beispielsweise könnte der CATCH Block eines äußeren TRY...CATCH Konstrukts ein inneres TRY...CATCH Konstrukt aufweisen. In diesem inneren CATCH-Block gibt ERROR_SEVERITY die Wert des Schweregrads für den Fehler zurück, der den inneren CATCH-Block aufgerufen hat. Wenn ERROR_SEVERITY im äußeren CATCH-Block ausgeführt wird, wird der Wert des Schweregrads für den Fehler zurückgegeben, der den äußeren CATCH-Block aufgerufen hat.
Beispiele: Azure Synapse Analytics und Analytics-Plattformsystem (PDW)
Ein. Verwenden von ERROR_SEVERITY in einem CATCH-Block
Dieses Beispiel zeigt eine gespeicherte Prozedur, in der ein Fehler aufgrund einer Division durch 0 (null) generiert wird.
ERROR_SEVERITY gibt den Wert für den Schweregrad des Fehlers zurück.
BEGIN TRY
-- Generate a divide-by-zero error.
SELECT 1 / 0;
END TRY
BEGIN CATCH
SELECT ERROR_SEVERITY() AS ErrorSeverity;
END CATCH
GO
Hier sehen Sie das Ergebnis.
-----------
(0 row(s) affected)
ErrorSeverity
-------------
16
(1 row(s) affected)
B. Verwenden von ERROR_SEVERITY in einem CATCH-Block mit anderen Fehlerbehandlungstools
Das folgende Beispiel zeigt eine SELECT-Anweisung, die einen Fehler aufgrund einer Division durch 0 (null) generiert. Die gespeicherte Prozedur gibt Informationen über den Fehler zurück.
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
Hier sehen Sie das Ergebnis.
-----------
(0 row(s) affected)
ErrorNumber ErrorSeverity ErrorState ErrorProcedure ErrorLine ErrorMessage
----------- ------------- ----------- --------------- ----------- ----------------------------------
8134 16 1 NULL 4 Divide by zero error encountered.
(1 row(s) affected)
Verwandte Inhalte
- sys.messages
- Schweregrade des Datenbankmoduls
- TRY... CATCH (Transact-SQL)
- ERROR_LINE (Transact-SQL)
- ERROR_MESSAGE (Transact-SQL)
- ERROR_NUMBER (Transact-SQL)
- FEHLER_PROZEDUR (Transact-SQL)
- ERROR_STATE (Transact-SQL)
- RAISERROR (Transact-SQL)
- @@ERROR (Transact-SQL)
- Fehler- und Ereignisreferenz (Datenbankmodul)