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
Funkcja ta zwraca numer błędu błędu, który spowodował blok CATCH w TRY... Konstrukcja CATCH do wykonania.
Transact-SQL konwencje składni
Składnia
ERROR_NUMBER ( )
Typy zwracane
int
Wartość zwracana
Po wywołaniu w bloku CATCH zwraca numer błędu błędu, ERROR_NUMBER który spowodował uruchomienie bloku CATCH.
ERROR_NUMBER zwraca NULL, gdy wywołamy go poza zakresem bloku CATCH.
Uwagi
ERROR_NUMBER obsługuje wywołania w dowolnym miejscu w zakresie bloku CATCH.
ERROR_NUMBER zwraca odpowiedni numer błędu niezależnie od liczby uruchomień lub miejsca w zakresie bloku CATCH . Jest to w przeciwieństwie do funkcji takiej jak @@ERROR, która zwraca tylko numer błędu w instrukcji bezpośrednio po tym, który powoduje błąd.
W zagnieżdżonym CATCH bloku zwraca ERROR_NUMBER numer błędu specyficzny dla zakresu CATCH bloku, który odwołał się do tego CATCH bloku. Na przykład CATCH blok zewnętrznego TRY... Konstrukcja CATCH mogłaby mieć konstrukcję wewnętrzną TRY...CATCH . Wewnątrz tego CATCH wewnętrznego bloku ERROR_NUMBER zwraca się numer błędu, który wywołał ten CATCH blok. Jeśli ERROR_NUMBER działa w bloku zewnętrznym CATCH , zwraca numer błędu, który wywołał ten blok zewnętrzny CATCH .
Przykłady
A. Wykorzystanie ERROR_NUMBER w bloku CATCH
Ten przykład pokazuje SELECT zdanie generujące błąd dzielenie przez zero. Blok CATCH zwraca numer błędu.
BEGIN TRY
-- Generate a divide-by-zero error.
SELECT 1/0;
END TRY
BEGIN CATCH
SELECT ERROR_NUMBER() AS ErrorNumber;
END CATCH;
GO
Oto zestaw wyników.
-----------
(0 row(s) affected)
ErrorNumber
-----------
8134
(1 row(s) affected)
B. Wykorzystanie ERROR_NUMBER w bloku CATCH z innymi narzędziami do obsługi błędów
Ten przykład pokazuje SELECT zdanie generujące błąd dzielenie przez zero. Wraz z numerem CATCH błędu blok zwraca informacje o tym 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)
Zobacz też
sys.messages (Transact-SQL)
TRY... CATCH (Transact-SQL)
ERROR_LINE (Transact-SQL)
ERROR_MESSAGE (Transact-SQL)
BŁĄD_PROCEDURY (Transact-SQL)
ERROR_SEVERITY (Transact-SQL)
ERROR_STATE (Transact-SQL)
RAISERROR (Transact-SQL)
@@ERROR (Transact-SQL)
Informacje o błędach i zdarzeniach (aparat bazy danych)