Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-databas i Microsoft Fabric
Denna funktion returnerar radnumret för förekomsten av ett fel som orsakade CATCH-blocket i en TRY... CATCH-konstruktionen ska exekveras.
Transact-SQL syntaxkonventioner
Syntax
ERROR_LINE ( )
Returtyp
int
Returvärde
När den anropas i ett CATCH-block, returnerar ERROR_LINE den
- radnumret där felet inträffade
- radnumret i en rutin, om felet inträffade inom en lagrad procedur eller trigger
- NULL, om den anropas utanför räckvidden för ett CATCH-block.
Anmärkningar
Ett samtal kan ERROR_LINE ske var som helst inom ramen för ett CATCH-block.
ERROR_LINE returnerar radnumret där felet uppstod. Detta sker oavsett var samtalet ERROR_LINE befinner sig inom CATCH-blockets omfattning, och oavsett antalet samtal till ERROR_LINE. Detta står i kontrast till funktioner, såsom @@ERROR. @@ERROR returnerar ett felnummer i satsen direkt efter den som orsakar felet, eller i den första satsen i ett CATCH-block.
I nästlade CATCH-block returnerar ERROR_LINE det felradsnummer som är specifikt för omfattningen av CATCH-blocket där det refereras. Till exempel, CATCH-blocket i en TRY... CATCH-konstruktionen skulle kunna innehålla en nästlad TRY... CATCH-konstruktionen. Inom det nästlade CATCH-blocket returneras ERROR_LINE radnumret för felet som anropade det nästlade CATCH-blocket. Om ERROR_LINE körs i det yttre CATCH-blocket returneras radnumret för felet som anropade just det CATCH-blocket.
Examples
A. Att använda ERROR_LINE i ett CATCH-block
Detta kodexempel visar ett SELECT uttalande som genererar ett del-med-noll-fel.
ERROR_LINE returnerar radnumret där felet uppstod.
BEGIN TRY
-- Generate a divide-by-zero error.
SELECT 1/0;
END TRY
BEGIN CATCH
SELECT ERROR_LINE() AS ErrorLine;
END CATCH;
GO
B. Att använda ERROR_LINE i ett CATCH-block med en lagrad prozedur
Detta exempel visar en lagrad procedur som genererar ett del-med-noll-fel.
ERROR_LINE returnerar radnumret där felet uppstod.
-- 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. Att använda ERROR_LINE i ett CATCH-block med andra felhanteringsverktyg
Detta kodexempel visar ett SELECT uttalande som genererar ett del-med-noll-fel.
ERROR_LINE returnerar radnumret där felet inträffade och information relaterad till själva felet.
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
Se även
TRY... CATCH (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)