Freigeben über


ERROR_SEVERITY (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankVerwaltete Azure SQL-InstanzAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-Analyseendpunkt in Microsoft FabricLagerhaus in Microsoft FabricSQL-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)