Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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)