error_message (Transact-sql)
try… catch bloğu neden hata iletisi metni verircatch yapı çalıştırılacak.
Transact-SQL Sözdizim Kuralları
Sözdizimi
ERROR_MESSAGE ( )
Dönüş Türleri
nvarchar(2048)
Dönüş Değeri
Bir catch bloğu çağrıldığında çalıştırılacak catch bloğu neden hata iletisinin tam metni verir. Metin sağlanan uzunlukları, nesne adlarını veya süreleri gibi değiştirilebilir parametreler için değerler içerir.
Bir catch bloğu kapsamı dışında null döndürür.
Açıklamalar
error_message, herhangi bir catch bloğu kapsamında çağrılabilir.
Hata iletisini nasıl olursa olsun kaç kez error_message döndürür çalıştırıldığı veya catch bloğu kapsamı içinde çalıştırdığı. @@ error, yalnızca hemen bir hata neden bir sonraki deyime ya da ilk deyimi bir catch bloğu hata numarasını verir gibi fonksiyonları farklı olarak budur.
Yuvalanmış catch bloklarında error_message hata iletisinin belirli yakalamak kapsamını verir hangi o içinde başvuruda bulunulan engellemek. Örneğin, bir dış deneyin catch bloğu...catch yapısı yuvalanmış DENEMEK olabilir...catch yapı. Yuvalanmış catch bloğu içinde error_message, yuvalanmış catch bloğu çağrıldığında hata iletisi döndürür. error_message dış catch bloğu içinde çalıştırılırsa bu catch bloğu çağrılan hata iletisi döndürür.
Örnekler
A.error_message 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 iletisi 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_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_MESSAGE() AS ErrorMessage;
END CATCH;
GO
B.error_message 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 iletisi 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)