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
Azure Synapse Analytics
Analiz Platformu Sistemi (PDW)
Microsoft Fabric'teki SQL analiz uç noktası
Microsoft Fabric'teki ambar
Microsoft Fabric'teki SQL veritabanı
Bu fonksiyon, bir TRY'nin CATCH bloğuna neden olan hata 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_NUMBER ( )
Dönüş Türleri
int
Dönüş Değeri
CATCH bloğunda çağrıldığında, ERROR_NUMBER CATCH bloğunun çalışmasına neden olan hatanın hata numarasını döndürür.
ERROR_NUMBER CATCH bloğunun kapsamı dışında çağrıldığında NULL döner.
Açıklamalar
ERROR_NUMBER CATCH bloğunun kapsamı içindeki herhangi bir yerde çağrıları destekler.
ERROR_NUMBER kaç kez çalıştırıldığından veya blok kapsamında nerede çalıştığından CATCH bağımsız olarak ilgili bir hata sayısını döndürür. Bu, @@ERROR gibi bir fonksiyonun aksine, hata yapan ifadede hemen ardından gelen bir hata sayısını döndürür.
İçiçe CATCH bir blokta, ERROR_NUMBER o CATCH bloğa referans veren blokun CATCH kapsamına özgü hata sayısını döndürür. Örneğin, CATCH dış TRY'nin bloğu... CATCH yapısının iç TRY...CATCH yapısı olabilir. O iç CATCH blok içinde, ERROR_NUMBER iç CATCH bloğu çağıran hata sayısını döndürür. Dış CATCH blokta çalıştırılırsaERROR_NUMBER, o dış CATCH bloğu çağıran hata sayısını döndürür.
Örnekler
A. CATCH blokunda ERROR_NUMBER kullanımı
Bu örnek, sıfıra böl hatası üreten bir SELECT ifadeyi gösterir. Blok CATCH hata numarasını döndürür.
BEGIN TRY
-- Generate a divide-by-zero error.
SELECT 1/0;
END TRY
BEGIN CATCH
SELECT ERROR_NUMBER() AS ErrorNumber;
END CATCH;
GO
Sonuç kümesi aşağıdadır.
-----------
(0 row(s) affected)
ErrorNumber
-----------
8134
(1 row(s) affected)
B. ERROR_NUMBER'yi CATCH blokunda diğer hata işleme araçlarıyla kullanmak
Bu örnek, sıfıra böl hatası üreten bir SELECT ifadeyi gösterir. Hata numarasıyla birlikte, CATCH blok o hata hakkında bilgi 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
Sonuç kümesi aşağıdadır.
-----------
(0 row(s) affected)
ErrorNumber ErrorSeverity ErrorState ErrorProcedure ErrorLine ErrorMessage
----------- ------------- ----------- --------------- ---------- ----------------------------------
8134 16 1 NULL 4 Divide by zero error encountered.
(1 row(s) affected)
Ayrıca Bkz.
sys.messages (Transact-SQL)
DENEYIN... CATCH (Transact-SQL)
ERROR_LINE (Transact-SQL)
ERROR_MESSAGE (Transact-SQL)
ERROR_PROCEDURE (Transact-SQL)
ERROR_SEVERITY (Transact-SQL)
HATA_DURUMU (Transact-SQL)
RAISERROR (Transact-SQL)
@@ERROR (Transact-SQL)
Hatalar ve Olaylar Başvurusu (Veritabanı Motoru)