Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse 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)