Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:programu 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
Warehouse w usłudze Microsoft Fabric
Błędy zgłaszane przez aparat bazy danych programu Microsoft SQL Server mają atrybuty opisane w poniższej tabeli.
Atrybut | Opis |
---|---|
Numer błędu | Każdy komunikat o błędzie ma unikatowy numer błędu. |
Ciąg komunikatu o błędzie | Komunikat o błędzie zawiera informacje diagnostyczne o przyczynie błędu. Wiele komunikatów o błędach zawiera zmienne podstawienia, w których są wstawione informacje, takie jak nazwa obiektu generującego błąd. |
Dotkliwość | Ważność wskazuje, jak poważny jest błąd. Błędy o niskiej ważności, takie jak 1 lub 2, to komunikaty informacyjne lub ostrzeżenia niskiego poziomu. Błędy o wysokiej ważności wskazują problemy, które należy rozwiązać tak szybko, jak to możliwe. Aby uzyskać więcej informacji na temat kategorii, zobacz Kategorie błędów silnika bazy danych. |
Stan | Niektóre komunikaty o błędach można zgłaszać w wielu punktach w kodzie silnika bazy danych. Na przykład błąd 1105 może zostać zgłoszony dla kilku różnych warunków. Każdy konkretny warunek, który zgłasza błąd, przypisuje unikatowy kod stanu. Podczas przeglądania baz danych zawierających informacje o znanych problemach, takich jak baza wiedzy Microsoft Knowledge Base, można użyć numeru stanu, aby określić, czy zarejestrowany problem jest taki sam jak napotkany błąd. Jeśli na przykład artykuł bazy wiedzy opisuje błąd 1105 o stanie 2, a otrzymany komunikat o błędzie 1105 miał stan 3, błąd prawdopodobnie ma inną przyczynę niż zgłoszony w artykule. Inżynier pomocy technicznej firmy Microsoft może również użyć kodu stanu z błędu, aby znaleźć lokalizację w kodzie źródłowym, w którym jest zgłaszany ten kod błędu. Te informacje mogą zawierać dodatkowe pomysły dotyczące diagnozowania problemu. |
Nazwa procedury | To nazwa procedury składowanej lub wyzwalacza, w którym wystąpił błąd. |
Numer linii | Wskazuje, która instrukcja w partii zadań, procedurze składowanej, wyzwalaczu lub funkcji wygenerowała błąd. |
Wszystkie komunikaty o błędach zdefiniowane przez użytkownika i system w wystąpieniu Silnika Bazy Danych znajdują się w widoku katalogu sys.messages. Możesz użyć instrukcji RAISERROR, aby zwrócić do aplikacji błędy zdefiniowane przez użytkownika.
Wszystkie interfejsy API bazy danych, takie jak przestrzeń nazw Microsoft .NET Framework SQLClient, obiekty danych ActiveX (ADO), OLE DB i Open Database Connectivity (ODBC), zgłaszają podstawowe atrybuty błędów. Te informacje zawierają numer błędu i ciąg komunikatu. Jednak nie wszystkie interfejsy API zgłaszają wszystkie inne atrybuty błędu.
Informacje o błędzie występującym w zakresie bloku TRY...CATCH można uzyskać w kodzie Transact-SQL, używając funkcji takich jak ERROR_LINE, ERROR_MESSAGE, ERROR_NUMBER, ERROR_PROCEDURE, ERROR_SEVERITY i ERROR_STATE w zakresie skojarzonego bloku CATCH. Aby uzyskać więcej informacji, zobacz TRY... CATCH (Transact-SQL).
Przykłady
Poniższy przykład wysyła zapytanie do widoku katalogu sys.messages
w celu zwrócenia listy wszystkich komunikatów o błędach zdefiniowanych przez system i użytkownika w aparacie bazy danych, które mają tekst w języku angielskim (1033
).
SELECT
message_id,
language_id,
severity,
is_event_logged,
text
FROM sys.messages
WHERE language_id = 1033;
Aby uzyskać więcej informacji, zobacz sys.messages (Transact-SQL).
Zobacz też
sys.messages (Transact-SQL)
RAISERROR (Transact-SQL)
@@ERROR (Transact-SQL)
TRY... CATCH (Transact-SQL)
ERROR_LINE (Transact-SQL)
ERROR_MESSAGE (Transact-SQL)
ERROR_NUMBER (Transact-SQL)
BŁĄD_PROCEDURY (Transact-SQL)
ERROR_SEVERITY (Transact-SQL)
ERROR_STATE (Transact-SQL)