Udostępnij za pośrednictwem


ERROR_MESSAGE (Transact-SQL)

Zwraca tekst komunikatu błędu, który spowodował CATCH blok TRY…CATCH konstrukcja ma zostać uruchomione.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

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