Udostępnij za pomocą


ERROR_SEVERITY (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punkt końcowy analizy SQL w usłudze Microsoft FabricHurtownia danych w usłudze Microsoft FabricBaza danych SQL w usłudze Microsoft Fabric

Ta funkcja zwraca wartość ważności błędu, w którym występuje błąd, jeśli ten błąd spowodował CATCH wykonanie bloku TRY...CATCH konstrukcji.

Transact-SQL konwencje składni

Składnia

ERROR_SEVERITY ( )

Typy zwracane

Int

Wartość zwracana

Po wywołaniu CATCH w bloku, w którym występuje błąd, zwraca wartość ważności błędu, ERROR_SEVERITY który spowodował CATCH uruchomienie bloku.

ERROR_SEVERITY Metoda zwraca NULL wartość , jeśli jest wywoływana poza zakresem CATCH bloku.

Uwagi

ERROR_SEVERITY obsługuje wywołania w dowolnym miejscu w zakresie CATCH bloku.

ERROR_SEVERITY Zwraca wartość ważności błędu niezależnie od tego, ile razy jest uruchamiana lub gdzie jest uruchamiana w zakresie CATCH bloku. Kontrastuje to z funkcją taką jak @@ERROR, która zwraca tylko numer błędu w instrukcji bezpośrednio po tej, która powoduje błąd.

ERROR_SEVERITY zazwyczaj działa w zagnieżdżonym CATCH bloku. ERROR_SEVERITY Zwraca wartość ważności błędu specyficzną dla zakresu CATCH bloku, do którego odwołuje się ten CATCH blok. Na przykład CATCH blok konstrukcji zewnętrznej TRY...CATCH może mieć konstrukcję wewnętrzną TRY...CATCH . Wewnątrz tego bloku wewnętrznego CATCH zwraca wartość ważności błędu, który wywołał blok wewnętrznyERROR_SEVERITY. CATCH Jeśli ERROR_SEVERITY działa w bloku zewnętrznym CATCH , zwraca wartość ważności błędu błędu, który wywołał ten blok zewnętrzny CATCH .

Przykłady: Azure Synapse Analytics and Analytics Platform System (PDW)

Odp. Używanie ERROR_SEVERITY w bloku CATCH

W tym przykładzie przedstawiono procedurę składowaną, która generuje błąd dzielenia przez zero. ERROR_SEVERITY Zwraca wartość ważności tego błędu.

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

Oto zestaw wyników.

-----------

(0 row(s) affected)

ErrorSeverity
-------------
16

(1 row(s) affected)

B. Używanie ERROR_SEVERITY w bloku CATCH z innymi narzędziami do obsługi błędów

W tym przykładzie pokazano instrukcję SELECT , która generuje błąd dzielenia przez zero. Procedura składowana zwraca informacje o błędzie.

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

Oto zestaw wyników.

-----------

(0 row(s) affected)

ErrorNumber ErrorSeverity ErrorState  ErrorProcedure  ErrorLine   ErrorMessage
----------- ------------- ----------- --------------- ----------- ----------------------------------
8134        16            1           NULL            4           Divide by zero error encountered.

(1 row(s) affected)