ERROR_SEVERITY (Transact-SQL)

Zwraca wskaźnik 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_SEVERITY ( )

Zwracane typy

int

Wartość zwracana

Po wywołaniu w blokCATCH zwraca ważności komunikat o błędzie, powodującej CATCH blok do uruchomienia.

Zwraca wartość NULL, jeśli o nazwie poza zakres blokCATCH.

Uwagi

ERROR_SEVERITY może być wywołana gdziekolwiek w obrębie zakres blokCATCH.

ERROR_SEVERITY zwraca wagi błędu niezależnie od tego, ile razy jest uruchamiany lub gdzie jest uruchomiona w ramach zakres blokCATCH.Jest to w przeciwieństwie do funkcji, takich jak @@ błąd, który zwraca numer błędu tylko w instrukcja bezpośrednio po jednej, która powoduje błąd lub w pierwszej instrukcja CATCH blok.

Zagnieżdżone bloki CATCH ERROR_SEVERITY zwraca wagi błędu 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_SEVERITY zwraca dotkliwość błędu, która wywołała CATCH zagnieżdżonego blok.Jeśli ERROR_SEVERITY jest uruchamiana w zewnętrznej połowu blok, zwraca wagę błędu, która wywołała blokCATCH.

Przykłady

A.Za pomocą ERROR_SEVERITY w blokCATCH

W poniższym przykładzie SELECT instrukcja , która generuje błąd dzielenia przez zero.Waga błędu jest zwracany.

USE AdventureWorks2008R2;
GO

BEGIN TRY
    -- Generate a divide-by-zero error.
    SELECT 1/0;
END TRY
BEGIN CATCH
    SELECT ERROR_SEVERITY() AS ErrorSeverity;
END CATCH;
GO

B.Za pomocą ERROR_SEVERITY w blok CATCH inne narzędzia do obsługi błędów

W poniższym przykładzie SELECT instrukcja , która generuje dzielenie przez zero.Wraz z ważności 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