error_number (Transact-sql)
try… catch bloğu neden hata hata numarasını döndürürcatch yapı çalıştırılacak.
Transact-SQL Sözdizim Kuralları
Sözdizimi
ERROR_NUMBER ( )
Dönüş Türleri
int
Dönüş Değeri
Bir catch bloğu çağrıldığında çalıştırılacak catch bloğu nedeniyle oluşan hata iletisi hata numarasını döndürür.
Bir catch bloğu kapsamı dışında null döndürür.
Açıklamalar
Bu fonksiyon, herhangi bir catch bloğu kapsamında çağrılabilir.
Ya da yakalamak kapsamı içinde koşmak olduğu blok error_number hata numarası ne olursa olsun kaç kez çalıştırmak olduğunu döndürür. @@ error yalnızca hemen bir hata neden bir sonraki deyime, ya da ilk deyimi bir catch bloğu içinde hata numarasını döndüren, farklı olarak budur.
Yuvalanmış catch bloklarında error_number hata verir hangi o başvurulan içinde blok catch kapsam için özel sayısı. Örneğin, bir dış deneyin catch bloğu...catch yapısı yuvalanmış DENEMEK olabilir...catch yapı. Yuvalanmış catch bloğu, error_number yuvalanmış catch bloğu çağrılan hata numarasını döndürür. error_number dış catch bloğu içinde çalıştırılırsa bu catch bloğu çağrılan hata numarasını döndürür.
Örnekler
A.error_number bir catch bloğu kullanma
Aşağıdaki kod örneği gösterildiği bir SELECTbir tarafından sıfıra bölme hatası üretir deyimini. Hata numarasını döndürür.
USE AdventureWorks2012;
GO
BEGIN TRY
-- Generate a divide-by-zero error.
SELECT 1/0;
END TRY
BEGIN CATCH
SELECT ERROR_NUMBER() AS ErrorNumber;
END CATCH;
GO
USE AdventureWorks2012;
GO
BEGIN TRY
-- Generate a divide-by-zero error.
SELECT 1/0;
END TRY
BEGIN CATCH
SELECT ERROR_NUMBER() AS ErrorNumber;
END CATCH;
GO
B.error_number bir catch bloğu diğer hata işleme araçları ile kullanma
Aşağıdaki kod örneği gösterildiği bir SELECTbir tarafından sıfıra bölme hatası üretir deyimini. Hata numarası ile ilgili hata döndürülür.
USE AdventureWorks2012;
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
USE AdventureWorks2012;
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
Ayrıca bkz.
Başvuru
DENEYİN...catch (Transact-sql)