Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Microsoft Fabric'te SQL veritabanı
Bu fonksiyon, bir TRY'nin CATCH bloğuna neden olan hata satır sayısını döndürür... CATCH yapısını yürütmek için.
Transact-SQL söz dizimi kuralları
Sözdizimi
ERROR_LINE ( )
Dönüş Türü
int
Dönüş Değeri
CATCH bloğunda çağrıldığında, ERROR_LINE geri döner
- hatanın meydana geldiği satır numarası
- hata bir prosedür veya tetikleyici içinde gerçekleştiyse bir rutindeki satır numarası
- NULL, eğer CATCH blokunun kapsamı dışında çağrılırsa.
Açıklamalar
Bir çağrı, ERROR_LINE CATCH blokunun kapsamında herhangi bir yerde gerçekleşebilir.
ERROR_LINE hatanın meydana geldiği satır numarasını döndürür. Bu, çağrının CATCH bloğunun kapsamındaki konumu ERROR_LINE ve ne kadar çağrı ERROR_LINEolursa olsun gerçekleşir. Bu, @@ERROR gibi fonksiyonlarla tezat oluşturur. @@ERROR, hata yapan ifadede veya CATCH bloğunun ilk ifadesinde hata numarası döndürür.
İç içe CATCH bloklarında, ERROR_LINE referans bulunduğu CATCH bloğunun kapsamına özgü hata satır numarasını döndürür. Örneğin, bir TRY'nin CATCH bloğu... CATCH yapısı iç içe bir TRY içerebilir... CATCH yapı. İç içe CATCH bloğunda, ERROR_LINE iç içe CATCH bloğunu çağıran hata için satır numarasını döndürür. Dış ERROR_LINE CATCH bloğunda çalıştırılırsa, o CATCH bloğunu çağıran hata için satır numarasını döndürür.
Örnekler
A. CATCH blokunda ERROR_LINE kullanmak
Bu kod örneği, sıfıra böl hatası üreten bir SELECT ifadeyi gösterir.
ERROR_LINE hatanın meydana geldiği satır numarasını döndürür.
BEGIN TRY
-- Generate a divide-by-zero error.
SELECT 1/0;
END TRY
BEGIN CATCH
SELECT ERROR_LINE() AS ErrorLine;
END CATCH;
GO
B. Bir CATCH bloğunda ERROR_LINE kullanılarak saklanan bir prosedür
Bu örnek, sıfıra böl hatası üreten bir kayıtlı prosedürü gösterir.
ERROR_LINE hatanın meydana geldiği 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'yi CATCH blokunda diğer hata işleme araçlarıyla kullanmak
Bu kod örneği, sıfıra böl hatası üreten bir SELECT ifadeyi gösterir.
ERROR_LINE hatanın meydana geldiği satır numarasını ve hata ile ilgili bilgileri döndürür.
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
Ayrıca Bkz.
DENEYIN... CATCH (Transact-SQL)
sys.messages (Transact-SQL)
ERROR_NUMBER (Transact-SQL)
ERROR_MESSAGE (Transact-SQL)
ERROR_PROCEDURE (Transact-SQL)
ERROR_SEVERITY (Transact-SQL)
HATA_DURUMU (Transact-SQL)
RAISERROR (Transact-SQL)
@@ERROR (Transact-SQL)