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


ERROR_NUMBER (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 visszaadja annak a hibának a hibaszámát, amely a TRY CATCH blokkját okozta... CATCH konstrukció végrehajtásra.

Transact-SQL szintaxis konvenciók

Szemantika

ERROR_NUMBER ( )  

Visszatérési típusok

int

Visszaadott érték

Ha CATCH blokkot hívnak, ERROR_NUMBER visszaadja annak a hibászámot, amely a CATCH blokk futtatásához vezetett.

ERROR_NUMBER akkor NULL értéket ad vissza, ha a CATCH blokk hatókörén kívül hívják.

Megjegyzések

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

ERROR_NUMBER visszaad egy releváns hibaszámot, függetlenül attól, hányszor fut, vagy hol fut a blokk hatókörén CATCH belül. Ez ellentétben áll egy olyan függvénysel, mint az @@ERROR, amely csak a hibát okozó állítás után adott hibászámot ad vissza.

Egy beágyazott CATCH blokkban a ERROR_NUMBER blokk hatóköréhez tartozó hibaszámot CATCH adja vissza, amely arra a blokkora hivatkozott CATCH . Például CATCH egy külső TRY blokk... A CATCH konstrukciónak lehet belső TRY...CATCH konstrukciója. Ebben a belső CATCH blokkban ERROR_NUMBER visszaadja a belső blokkot idéző hiba CATCH számát. Ha ERROR_NUMBER a külső CATCH blokkban fut, akkor visszaadja annak a hibának a számát, amely az adott külső CATCH blokkot idézte elő.

Példák

A. ERROR_NUMBER használata egy CATCH blokkban

Ez a példa egy SELECT olyan állítást mutat, amely nullával osztó hibát generál. A CATCH blokk visszaadja a hibaszámot.

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

Itt van az eredmények összessége.

-----------

(0 row(s) affected)

ErrorNumber
-----------
8134

(1 row(s) affected)

B. ERROR_NUMBER használata CATCH blokkban más hibakezelő eszközökkel

Ez a példa egy SELECT olyan állítást mutat, amely nullával osztó hibát generál. A hibaszám mellett a CATCH blokk visszaadja az adott hibáról szóló információkat.

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)

Lásd még:

sys.messages (Transact-SQL)
TRY... CATCH (Transact-SQL)
ERROR_LINE (Transact-SQL)
ERROR_MESSAGE (Transact-SQL)
ERROR_PROCEDURE (Transact-SQL)
ERROR_SEVERITY (Transact-SQL)
ERROR_STATE (Transact-SQL)
RAISERROR (Transact-SQL)
@@ERROR (Transact-SQL)
Hibák és események referenciája (adatbázismotor)