Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Punkt końcowy analizy SQL w usłudze Microsoft Fabric
Hurtownia danych w usłudze Microsoft Fabric
Baza 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)
Treści powiązane
- sys.messages
- Ważność błędów aparatu bazy danych
- TRY... CATCH (Transact-SQL)
- ERROR_LINE (Transact-SQL)
- ERROR_MESSAGE (Transact-SQL)
- ERROR_NUMBER (Transact-SQL)
- BŁĄD_PROCEDURY (Transact-SQL)
- ERROR_STATE (Transact-SQL)
- RAISERROR (Transact-SQL)
- @@ERROR (Transact-SQL)
- Informacje o błędach i zdarzeniach (aparat bazy danych)