Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:SQL Server
Azure SQL Database
Spravovaná instance Azure SQL
Azure Synapse Analytics
Analytics Platform System (PDW)
Koncový bod analýzy SQL v Microsoft Fabric
Sklad v Microsoft Fabric
Databáze SQL v Microsoft Fabric
Tato funkce vrací chybové číslo chyby, která způsobila blok CATCH v TRY... CATCH konstrukce pro provedení.
Syntaxe
ERROR_NUMBER ( )
Návratové typy
int
Návratová hodnota
Při volání bloku CATCH vrátí chybové číslo chyby, ERROR_NUMBER která způsobila spuštění bloku CATCH.
ERROR_NUMBER vrací NULL, když je volán mimo rozsah bloku CATCH.
Poznámky
ERROR_NUMBER podporuje volání kdekoli v rámci CATCH bloku.
ERROR_NUMBER vrací relevantní chybové číslo bez ohledu na to, kolikrát se spustí, nebo kde se spustí v rozsahu CATCH bloku. To je v kontrastu s funkcí jako @@ERROR, která vrací chybové číslo pouze v příkazu hned po tom, které chybu způsobuje.
V vnořeném CATCH bloku vrací ERROR_NUMBER chybové číslo specifické pro rozsah bloku CATCH , který na tento CATCH blok odkazoval. Například CATCH blok vnějšího TRY... Konstrukt CATCH by mohl mít vnitřní konstrukt.TRY...CATCH Uvnitř tohoto vnitřního CATCH bloku vrací ERROR_NUMBER číslo chyby, která vyvolala vnitřní CATCH blok. Pokud ERROR_NUMBER běží ve vnějším CATCH bloku, vrátí číslo chyby, která tento vnější CATCH blok vyvolala.
Examples
A. Použití ERROR_NUMBER v bloku CATCH
Tento příklad ukazuje tvrzení, SELECT které generuje chybu dělení nulou. Blok CATCH vrací chybové číslo.
BEGIN TRY
-- Generate a divide-by-zero error.
SELECT 1/0;
END TRY
BEGIN CATCH
SELECT ERROR_NUMBER() AS ErrorNumber;
END CATCH;
GO
Tady je soubor výsledků.
-----------
(0 row(s) affected)
ErrorNumber
-----------
8134
(1 row(s) affected)
B. Použití ERROR_NUMBER v bloku CATCH s dalšími nástroji pro zpracování chyb
Tento příklad ukazuje tvrzení, SELECT které generuje chybu dělení nulou. Spolu s číslem CATCH chyby blok vrací informace o této chybě.
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
Tady je soubor výsledků.
-----------
(0 row(s) affected)
ErrorNumber ErrorSeverity ErrorState ErrorProcedure ErrorLine ErrorMessage
----------- ------------- ----------- --------------- ---------- ----------------------------------
8134 16 1 NULL 4 Divide by zero error encountered.
(1 row(s) affected)
Viz také
sys.messages (Transact-SQL)
VYZKOUŠET... ZACHYTIT (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)
Referenční dokumentace k chybám a událostem (databázový stroj)