ERROR_LINE (Transact-SQL)
Zwraca numer wiersza, w którym wystąpił błąd, który spowodował blok CATCH konstrukcji TRY…CATCH ma być uruchomiony.
ERROR_LINE ( )
Zwracany typ
int
Return Value
Po wywołaniu w blok CATCH:
Zwraca numer wiersza, w którym wystąpił błąd.
Zwraca numer wiersza w procedura w przypadku błędu w procedura przechowywana lub wyzwalacza.
Zwraca wartość NULL, jeśli o nazwie poza zakres blok CATCH.
Remarks
Ta funkcja może być wywołana w dowolne miejsce w zakresie blok CATCH.
ERROR_LINE zwraca numer wiersza, w którym wystąpił błąd, niezależnie od liczby godzin, jest nazywany lub gdy jest on nazywany zakresem blok CATCH.To kontrastuje z funkcji, takich jak @@ ERROR, które zwracają błąd numer w instrukcja, bezpośrednio po tej, która powoduje błąd lub w pierwszej instrukcja blok CATCH.
W blokach CATCH zagnieżdżone, ERROR_LINE zwraca błąd numer wiersza do zakres od połowy zablokować, w której istnieje odwołanie.Na przykład blok CATCH konstrukcji TRY…CATCH może zawierać zagnieżdżonego konstrukcja TRY…CATCH.W obrębie blok CATCH zagnieżdżone ERROR_LINE zwraca numer wiersza danego błędu, która wywołała zagnieżdżonych blok CATCH.Jeśli ERROR_LINE jest uruchamiana w zewnątrz blok CATCH, zwraca numer wiersza danego błędu, która wywołała tego blok CATCH.
Przykłady
A.Za pomocą ERROR_LINE w blok CATCH
Następujący kod przykładzie SELECT instrukcja generuje błąd dzielenia przez zero. Zwracany jest numer wiersza, w którym wystąpił błąd.
USE AdventureWorks;
GO
BEGIN TRY
-- Generate a divide-by-zero error.
SELECT 1/0;
END TRY
BEGIN CATCH
SELECT ERROR_LINE() AS ErrorLine;
END CATCH;
GO
B.Za pomocą ERROR_LINE w blok CATCH z procedurą przechowywaną
The following code example shows a stored procedure that will generate a divide-by-zero error.ERROR_LINE returns the line number in the stored procedure in which the error occurred.
-- 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.Za pomocą ERROR_LINE w blok CATCH z innymi narzędziami obsługi błędów
Następujący kod przykładzie SELECT instrukcja generuje błąd dzielenia przez zero. Wraz z liczbą wierszy, w którym wystąpił błąd informacje, które odnoszą się do błędu jest zwracany.
USE AdventureWorks;
GO
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
See Also