Aracılığıyla paylaş


ERROR_MESSAGE (Transact-SQL)

Çalıştırılacak bir TRY…CATCH yapýsý CATCH blok neden hata iletisi metni verir.

Topic link iconTransact-SQL sözdizimi kuralları

ERROR_MESSAGE ( )

Dönüş Türleri

nvarchar(2048)

Return Value

Bir CATCH blok içinde çağrıldığında, CATCH blok çalışmasına neden olan hata iletisinin tam metni verir.Metni gibi uzunlukları, nesne adları veya zamanları, değiştirilebilir parametreleri için sağlanan değerler içerir.

kapsam dışında bir CATCH blok adlı ise, NULL döndürüyor.

Remarks

ERROR_MESSAGE içinde herhangi bir yere çağrılabilir kapsam bir CATCH blok.

Hata iletisinin dikkate almadan kaç kez çalıştırmak veya bunun içinde çalıştırılır ERROR_MESSAGE döndürür kapsam CATCH blok.@@ Yalnızca hemen hataya neden olan bir sonraki veya bir CATCH bloğunun ilk deyim numaralı hata döndüren ERROR, benzer işlevleri için tersine budur.

Iç içe geçmiş CATCH blok içinde ERROR_MESSAGE hata iletisinin belirli CATCH kapsama verir, buna başvuruda bulunulan blok.Ö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 iletinin ERROR_MESSAGE iç içe geçmiş CATCH blok çağrılan hata verir.Dış CATCH blok ERROR_MESSAGE çalıştırılırsa, iletinin, CATCH blok çağrılan hata verir.

Örnekler

C.Bir CATCH blok içinde ERROR_MESSAGE kullanma

Aşağıdaki örnekte gösterildiği kod bir SELECT deyim bir sıfıra bölme hatasına neden olur. Hata iletisi 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_MESSAGE() AS ErrorMessage;
END CATCH;
GO

b.Diğer hata işleme araçlarıyla bir CATCH blok içinde ERROR_MESSAGE kullanma

Aşağıdaki örnekte gösterildiği kod bir SELECT deyim bir sıfıra bölme hatasına neden olur. Hata iletisiyle 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