Udostępnij za pośrednictwem


ERROR_MESSAGE (języka Transact-SQL)

Zwraca tekst komunikatu błędu, który spowodował blok CATCH konstrukcji TRY…CATCH ma być uruchomiony.

Topic link iconKonwencje składni języka Transact-SQL

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