ERROR_NUMBER (Transact-SQL)

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

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

Składnia

ERROR_NUMBER ( )

Zwracane typy

int

Wartość zwracana

Po wywołaniu w blokCATCH zwraca numer błędu spowodowane CATCH blok uruchamianie komunikat o błędzie.

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

Uwagi

Ta funkcja może zostać wywołana gdziekolwiek w zakres połowu blok.

ERROR_NUMBER zwraca numer błędu niezależnie od tego, ile razy jest uruchamiany lub gdzie jest uruchomiona w ramach zakres blokCATCH.Jest to rożni się @@ 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_NUMBER zwraca numer 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_NUMBER zwraca numer błędu, która wywołała CATCH zagnieżdżonego blok.Jeśli ERROR_NUMBER jest uruchamiana w zewnętrznej połowu blok, zwraca numer błędu, która wywołała blokCATCH.

Przykłady

A.Za pomocą ERROR_NUMBER w blokCATCH

Następujący kod ilustruje przykład SELECT instrukcja , która generuje błąd dzielenia przez zero.Numer błędu jest zwracany.

USE AdventureWorks2008R2;
GO

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

B.Za pomocą ERROR_NUMBER 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 liczbą błędów 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