ERROR_LINE (Transact-SQL)

Bir hata, oluştuğu satırın numarası bir try… catch blok neden verircatch yapı çalıştırılacak.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

ERROR_LINE ( )

Dönüş Türü

int

Dönüş Değeri

İçinde bir catch blokçağrıldığında:

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

  • saklı yordam veya tetikleyiciyi içinde hata oluştu, bir yordam satır numarasını döndürür.

kapsam bir catch blokdışında adlı null döndürür.

Açıklamalar

Bu işlev herhangi bir kapsam bir catch blokiçinde çağrılabilir.

ERROR_LINE hata buna denir ya da burada kapsam catch blokiçinde adlı sayısı ne olursa olsun oluştuğu satırın numarası verir.Hemen bir hata neden olan bir deyim veya bir catch blokilk deyim hata numarasını döndürmek işlevleri @@ error gibi ile karşıttır.

Yuvalanmış catch bloklarında ERROR_LINE hata satır numarası belirli kapsam başvuruda bulunulan catch blok döndürür.Örneğin, catch blok bir try…İç içe try… catch yapı içerebilircatch yapı.Yuvalanmış catch blokiçinde ERROR_LINE yuvalanmış catch blokçağrılan hata satır numarasını döndürür.ERROR_LINE catch blokiçinde çalıştırırsanız, o catch blokçağrılan hata satır numarasını döndürür.

Örnekler

A.ERROR_LINE bir catch blokiçinde kullanma

Aşağıdaki kod örneği gösterildiği bir SELECT deyim sıfır ile bölme hatası üretir.Hatanın oluştuğu satırın numarası verilir.

USE AdventureWorks2008R2;
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.ERROR_LINE saklı yordambir catch blok kullanma

Aşağıdaki kod örneği, bir bölme sıfır hatası üretecektir saklı yordam gösterir.ERROR_LINEhatanın oluştuğu saklı yordam satır numarasını döndürür.

-- 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.ERROR_LINE bir catch blok diğer hata işleme araçları ile kullanma

Aşağıdaki kod örneği gösterildiği bir SELECT deyim sıfır ile bölme hatası üretir.Hatanın oluştuğu satır numarası ile birlikte hata bilgileri döndürülür.

USE AdventureWorks2008R2;
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