Aracılığıyla paylaş


ERROR_NUMBER (Transact-SQL)

Çalıştırılacak bir TRY…CATCH yapýsý CATCH blok neden olan hatasının hata verir.

Topic link iconTransact-SQL sözdizimi kuralları

ERROR_NUMBER ( )

Dönüş Türleri

int

Return Value

Bir CATCH blok içinde çağrıldığında, hata iletisinin CATCH blok çalışmasına neden olan hata numarasını döndürür.

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.

Hata numarasını dikkate almadan kaç kez çalıştırmak veya bunun içinde çalıştırılır ERROR_NUMBER döndürür kapsam CATCH blok.@@ Veren yalnızca hata numarasını hemen hataya neden olan bir sonraki veya bir CATCH bloğunun ilk deyim HATA, tersine için budur.

Iç içe geçmiş CATCH blok içinde ERROR_NUMBER hata döndürüyor sayısı kapsama özel CATCH engellemek, onu başvuruda bulunulan içinde.Örneğin, bir dış... TRY'i CATCH yapı CATCH blok iç içe geçmiş bir TRY,... CATCH yapýsý olabilir.Iç içe geçmiş CATCH blok içinde ERROR_NUMBER iç içe geçmiş CATCH blok çağrılan hata verir.Dış CATCH blok ERROR_NUMBER çalıştırılırsa, CATCH blok çağrılan hata sayısını verir.

Örnekler

C.Bir CATCH blok içinde ERROR_NUMBER kullanma

Aşağıdaki örnekte gösterildiği kod bir SELECT deyim bir sıfıra bölme hatasına neden olur. Hata sayısını verir.

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

Aşağıdaki örnekte gösterildiği kod bir SELECT deyim bir sıfıra bölme hatasına neden olur. Hata numarası ile birlikte, bilgileri hata döndürülür.

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