Aracılığıyla paylaş


ERROR_LINE (Transact-SQL)

Satır numarası, bir hata oluştu, çalıştırılacak bir TRY…CATCH yapýsý CATCH blok neden döndürür.

Topic link iconTransact-SQL sözdizimi kuralları

ERROR_LINE ( )

Dönüş Türü

int

Return Value

Bir CATCH blok içinde çağrıldığında:

  • Hatanın oluştuğu satırın numarasını döndürür.

  • Hata bir saklı yordam veya tetikleyiciyi bir yordamında satır numarasını verir.

kapsam dışında bir CATCH blok adlı ise, NULL döndürüyor.

Remarks

Bu işlev içinde herhangi bir yere çağrılabilir kapsam bir CATCH blok.

ERROR_LINE yeniden adlandırılır veya burada CATCH blok kapsamında adlı sayısı ne olursa olsun hata oluştu, satır numarasını verir.Bu hataya neden olan bir hemen deyim veya CATCH bloğunun ilk deyim hata numarasını döndürür, gibi işlevler @@ ERROR, ile karşıttır.

Iç içe geçmiş CATCH blok içinde ERROR_LINE hata döndürüyor satır sayısı için kapsam belirli CATCH engellemek, onu başvuruda bulunulan içinde.Örneğin, bir TRY…CATCH yapýsý CATCH blok iç içe geçmiş bir TRY…CATCH yapı içerebilir.Iç içe geçmiş CATCH blok içinde ERROR_LINE satır için iç içe geçmiş CATCH blok çağıran bir hata döndürür.Dış CATCH blok ERROR_LINE çalıştırılırsa, CATCH blok çağıran bir hata satır numarasını verir

Örnekler

C.Bir CATCH blok içinde ERROR_LINE kullanma

Aşağıdaki örnekte gösterildiği kod bir SELECT deyim bir sıfıra bölme hatasına neden olur. Hatanın oluştuğu satırın numarası döndürdü.

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.Saklı yordam olan bir CATCH blok ERROR_LINE kullanma

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.Diğer hata işleme araçlarıyla bir CATCH blok içinde ERROR_LINE kullanma

Aşağıdaki örnekte gösterildiği kod bir SELECT deyim bir sıfıra bölme hatasına neden olur. Satır numarası ile birlikte, bir hata oluştu hata bilgileri verir.

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