ERROR_MESSAGE (języka Transact-SQL)
Zwraca tekst komunikatu błędu, który spowodował blok CATCH konstrukcji TRY…CATCH ma być uruchomiony.
ERROR_MESSAGE ( )
Zwracane typy
nvarchar(2048)
Return Value
Po wywołaniu w blok CATCH zwraca komunikat o błędzie, który spowodował blok CATCH na uruchamianie całego tekstu.Tekst zawiera wartości dostarczone parametrów wymiennych, takich jak długości nazw obiektów i godziny.
Zwraca wartość NULL, jeśli o nazwie poza zakres blok CATCH.
Remarks
ERROR_MESSAGE może zostać wywołana w dowolnym miejscu w ciągu zakres blok CATCH.
Zwraca ERROR_MESSAGE błąd wiadomości niezależnie od sposobu tyle razy, jest uruchamiany lub gdzie jest uruchomiona w ramach blok CATCH.Jest to w przeciwieństwie do funkcji, takich jak @@ ERROR, która zwraca błąd numer tylko w instrukcja znajdującej się bezpośrednio po tej, która powoduje błąd, lub w pierwszej instrukcja blok CATCH.
W blokach CATCH zagnieżdżone, ERROR_MESSAGE zwraca komunikat o błędzie określonych do zakres od połowy zablokować, w której istnieje odwołanie.Na przykład blok CATCH zewnętrzne konstrukcja TRY... CATCH może mieć zagnieżdżonych konstrukcja TRY... CATCH.W obrębie blok CATCH zagnieżdżone ERROR_MESSAGE zwraca wiadomości z błąd, która wywołała zagnieżdżonych blok CATCH.Jeśli ERROR_MESSAGE jest uruchamiana w zewnątrz blok CATCH, zwraca wiadomość z błędów, która wywołała tego blok CATCH.
Przykłady
A.Za pomocą ERROR_MESSAGE w blok CATCH
Następujący kod przykładzie SELECT instrukcja generuje błąd dzielenia przez zero. Zostaje zwrócony komunikat błędu.
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.Za pomocą ERROR_MESSAGE w blok CATCH z innymi narzędziami obsługi błędów
Następujący kod przykładzie SELECT instrukcja generuje błąd dzielenia przez zero. Informacje, które odnoszą się do błędu jest zwracana wraz z komunikatu o błędzie.
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
See Also