Megosztás a következőn keresztül:


ERROR_SEVERITY (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példányAzure Synapse AnalyticsElemzési platformrendszer (PDW)SQL Analytics-végpont a Microsoft FabricbenRaktár a Microsoft FabricbenSQL-adatbázis a Microsoft Fabricben

Ez a függvény annak a hibának a súlyossági értékét adja vissza, amelyben hiba történik, ha ez a hiba egy CATCH szerkezet blokkjának TRY...CATCH végrehajtását okozta.

Transact-SQL szintaxis konvenciók

Szemantika

ERROR_SEVERITY ( )

Visszatérési típusok

Int

Visszaadott érték

Ha egy CATCH blokkban hiba történik, a hiba súlyossági értékét adja vissza, ERROR_SEVERITY amely a CATCH blokk futtatását okozta.

ERROR_SEVERITY NULL a blokk hatókörén CATCH kívül eső meghívás esetén ad vissza.

Megjegyzések

ERROR_SEVERITY a blokk hatókörén CATCH belül bárhol támogatja a hívásokat.

ERROR_SEVERITY A hiba súlyossági értékét adja vissza, függetlenül attól, hogy hányszor fut vagy hol fut a CATCH blokk hatókörén belül. Ez ellentétben áll egy olyan függvénnyel, mint a @@ERROR, amely csak egy hibaszámot ad vissza az utasításban, közvetlenül azt követően, amely hibát okoz.

ERROR_SEVERITY általában beágyazott CATCH blokkokban működik. ERROR_SEVERITYA hiba súlyossági értékét adja vissza, amely az adott CATCH blokkra hivatkozó blokk hatókörére CATCH vonatkozik. A külső CATCH szerkezet blokkja például TRY...CATCH belső TRY...CATCH szerkezettel rendelkezhet. A belső CATCH blokkon belül a belső ERROR_SEVERITY blokkot CATCH meghívó hiba súlyossági értékét adja vissza. Ha ERROR_SEVERITY a külső CATCH blokkban fut, a külső blokkot meghívó CATCH hiba súlyossági értékét adja vissza.

Példák: Azure Synapse Analytics and Analytics Platform System (PDW)

Egy. ERROR_SEVERITY használata CATCH blokkban

Ez a példa egy tárolt eljárást mutat be, amely osztva nullával hibát okoz. ERROR_SEVERITY A hiba súlyossági értékét adja vissza.

BEGIN TRY
-- Generate a divide-by-zero error.
    SELECT 1 / 0;
END TRY
BEGIN CATCH
    SELECT ERROR_SEVERITY() AS ErrorSeverity;
END CATCH
GO

Itt van az eredmények összessége.

-----------

(0 row(s) affected)

ErrorSeverity
-------------
16

(1 row(s) affected)

B. ERROR_SEVERITY használata catch blokkban más hibakezelő eszközökkel

Ez a példa egy olyan utasítást SELECT mutat be, amely nulla hibával való osztást hoz létre. A tárolt eljárás adatokat ad vissza a hibáról.

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

Itt van az eredmények összessége.

-----------

(0 row(s) affected)

ErrorNumber ErrorSeverity ErrorState  ErrorProcedure  ErrorLine   ErrorMessage
----------- ------------- ----------- --------------- ----------- ----------------------------------
8134        16            1           NULL            4           Divide by zero error encountered.

(1 row(s) affected)