ERROR_MESSAGE (Transact-SQL)
Zwraca tekst komunikatu błędu, który spowodował CATCH blok TRY…CATCH konstrukcja ma zostać uruchomione.
Składnia
ERROR_MESSAGE ( )
Zwracane typy
nvarchar(2048)
Wartość zwracana
Po wywołaniu w blokCATCH Zwraca pełny tekst komunikatu o błędzie, powodującej CATCH blok do uruchomienia.Tekst zawiera wartości dostarczonych parametrów wymiennych, takich jak długość, nazwy obiektów lub godzin.
Zwraca wartość NULL, jeśli o nazwie poza zakres blokCATCH.
Uwagi
ERROR_MESSAGE może być wywołana gdziekolwiek w obrębie zakres blokCATCH.
ERROR_MESSAGE zwraca komunikat o błędzie niezależnie od sposobu wielokrotnie jest uruchamiany lub gdzie jest uruchomiona w ramach zakres blokCATCH.Jest to w przeciwieństwie do funkcji, takich jak @@ błąd, który zwraca tylko numer błędu w instrukcja niezwłocznie po jednej, która powoduje błąd lub pierwsza instrukcja CATCH blok.
W zagnieżdżone bloki CATCH ERROR_MESSAGE zwraca komunikat o błędzie określonego blok CATCH, w której jest odwołanie do zakres .Na przykład, połowu blok TRY zewnętrzne...Konstrukcja CATCH może mieć zagnieżdżony blok TRY...CATCH konstrukcji.Zagnieżdżone połowu blokERROR_MESSAGE zwraca komunikat błędu, która wywołała CATCH zagnieżdżonego blok.Jeśli ERROR_MESSAGE jest uruchamiana w zewnętrznej połowu blok, zwraca komunikat błędu, która wywołała blokCATCH.
Przykłady
A.Za pomocą ERROR_MESSAGE w blokCATCH
Następujący kod ilustruje przykład SELECT instrukcja , która generuje błąd dzielenia przez zero.Zwracany jest komunikat o błędzie.
USE AdventureWorks2008R2;
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.Za pomocą ERROR_MESSAGE w blok CATCH inne narzędzia do obsługi błędów
Następujący kod ilustruje przykład SELECT instrukcja , która generuje błąd dzielenia przez zero.Wraz z komunikatu o błędzie zwracane są informacje, który odnosi się do błędu.
USE AdventureWorks2008R2;
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
Zobacz także