Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
Azure Synapse Analytics
Elemzési platformrendszer (PDW)
SQL Analytics-végpont a Microsoft Fabricben
Raktár a Microsoft Fabricben
SQL-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)