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
Azure SQL Managed Instance
SQL databáze v Microsoft Fabric
Tato funkce vrací číslo řádku výskytu chyby, která způsobila blok CATCH v TRY... CATCH konstrukce pro provedení.
Syntaxe
ERROR_LINE ( )
Návratový typ
int
Návratová hodnota
Při volání v bloku CATCH se vrací ERROR_LINE
- číslo řádku, kde došlo k chybě
- číslo řádku v rutině, pokud k chybě došlo v rámci uložené procedury nebo spouštěče
- NULL, pokud je volán mimo rozsah bloku CATCH.
Poznámky
Volání k ERROR_LINE volání může proběhnout kdekoli v rámci bloku CATCH.
ERROR_LINE vrací číslo řádku, ve kterém chyba nastala. To se děje bez ohledu na umístění hovoru ERROR_LINE v rozsahu bloku CATCH a bez ohledu na počet hovorů do ERROR_LINE. To je v kontrastu s funkcemi, jako je @@ERROR. @@ERROR vrací chybové číslo v příkazu bezprostředně následujícím po tom, které chybu způsobuje, nebo v prvním příkazu bloku CATCH.
V vnořených blocích CATCH vrací ERROR_LINE chybové číslo řádku specifické pro rozsah bloku CATCH, ve kterém je odkazován. Například blok CATCH v TRY... Konstrukce CATCH by mohla obsahovat vnořený TRY... CATCH konstrukce. V rámci vnořeného bloku CATCH vrací ERROR_LINE číslo řádku pro chybu, která vyvolala vnořený blok CATCH. Pokud běží ERROR_LINE v vnějším bloku CATCH, vrátí číslo řádku pro chybu, která tento konkrétní blok CATCH vyvolala.
Examples
A. Použití ERROR_LINE v bloku CATCH
Tento příklad kódu ukazuje příkaz, SELECT který generuje chybu dělení nulou.
ERROR_LINE vrátí číslo řádku, kde chyba nastala.
BEGIN TRY
-- Generate a divide-by-zero error.
SELECT 1/0;
END TRY
BEGIN CATCH
SELECT ERROR_LINE() AS ErrorLine;
END CATCH;
GO
B. Použití ERROR_LINE v bloku CATCH s uloženou procedurou
Tento příklad ukazuje uloženou proceduru, která generuje chybu dělení nulou.
ERROR_LINE vrátí číslo řádku, kde chyba nastala.
-- Verify that the stored procedure does not already exist.
IF OBJECT_ID ( 'usp_ExampleProc', 'P' ) IS NOT NULL
DROP PROCEDURE usp_ExampleProc;
GO
-- Create a stored procedure that
-- generates a divide-by-zero error.
CREATE PROCEDURE usp_ExampleProc
AS
SELECT 1/0;
GO
BEGIN TRY
-- Execute the stored procedure inside the TRY block.
EXECUTE usp_ExampleProc;
END TRY
BEGIN CATCH
SELECT ERROR_LINE() AS ErrorLine;
END CATCH;
GO
C. Použití ERROR_LINE v bloku CATCH s dalšími nástroji pro zpracování chyb
Tento příklad kódu ukazuje příkaz, SELECT který generuje chybu dělení nulou.
ERROR_LINE vrací číslo řádku, kde chyba nastala, a informace týkající se samotné chyby.
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
Viz také
VYZKOUŠET... ZACHYTIT (Transact-SQL)
sys.messages (Transact-SQL)
ERROR_NUMBER (Transact-SQL)
ERROR_MESSAGE (Transact-SQL)
ERROR_PROCEDURE (Transact-SQL)
ERROR_SEVERITY (Transact-SQL)
ERROR_STATE (Transact-SQL)
RAISERROR (Transact-SQL)
@@ERROR (Transact-SQL)