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 vrátí text zprávy o chybě, která způsobila blok CATCH try... Konstruktor CATCH, který se má provést.
Syntaxe
ERROR_MESSAGE ( )
Návratové typy
nvarchar(4000)
Návratová hodnota
Při zavolání v bloku ERROR_MESSAGE CATCH vrátí úplný text chybové zprávy, která způsobila CATCH spuštění bloku. Text obsahuje hodnoty zadané pro všechny parametry, například délky, názvy objektů nebo časy.
ERROR_MESSAGE vrátí hodnotu NULL, pokud je volána mimo rozsah bloku CATCH.
Poznámky
ERROR_MESSAGE podporuje volání kdekoli v rozsahu bloku CATCH.
ERROR_MESSAGE vrátí relevantní chybovou zprávu bez ohledu na to, kolikrát se spustí nebo kde se spouští v rámci rozsahu CATCH bloku. To kontrastuje s funkcí, jako je @@ERROR, která vrací pouze číslo chyby v příkazu bezprostředně za funkcí, která způsobuje chybu.
V vnořených CATCH blocích vrátí chybovou zprávu specifickou pro obor ERROR_MESSAGE bloku, CATCH na který odkazoval daný CATCH blok. Například CATCH blok vnějšího try... Konstruktor CATCH může mít vnitřní TRY...CATCH konstruktor. Uvnitř vnitřního CATCH bloku ERROR_MESSAGE vrátí zprávu z chyby, která vyvolala vnitřní CATCH blok. Pokud ERROR_MESSAGE se spustí ve vnějším bloku, vrátí zprávu z chyby, která vyvolala tento vnější CATCHCATCH blok.
Příklady
A. Použití ERROR_MESSAGE v bloku CATCH
Tento příklad ukazuje SELECT příkaz, který generuje chybu dělení nulou. Blok CATCH vrátí chybovou zprávu.
BEGIN TRY
-- Generate a divide-by-zero error.
SELECT 1/0;
END TRY
BEGIN CATCH
SELECT ERROR_MESSAGE() AS ErrorMessage;
END CATCH;
GO
Tady je soubor výsledků.
-----------
(0 row(s) affected)
ErrorMessage
----------------------------------
Divide by zero error encountered.
(1 row(s) affected)
B. Použití ERROR_MESSAGE v bloku CATCH s jinými nástroji pro zpracování chyb
Tento příklad ukazuje SELECT příkaz, který generuje chybu dělení nulou. Spolu s chybovou zprávou CATCH vrátí blok 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)