Udostępnij za pośrednictwem


Understanding Database Engine Errors

Errors raised by the Microsoft SQL Server Database Engine have the attributes described in the following table.

Attribute

Description

Numer błędu

Każdy komunikat o błędzie ma numer unikatowy błędu.

Ciąg komunikatu o błędzie

Komunikat o błędzie zawiera informacje diagnostyczne na temat przyczyny błędu.Wiele komunikatów o błędach mają Podstawianie zmiennych w których informacje takie jak nazwa obiektu, generuje błąd, zostanie wstawiony.

Wskaźnik ważności

Wagę wskazuje, jak poważny jest błąd.Błędy, o niskiej ważności, takie jak 1 lub 2, to komunikaty informacyjne lub niskiego poziom ostrzeżeń.Błędy, o wysokiej ważności wskazują problemy, które powinny być kierowane jak najszybciej.Aby uzyskać więcej informacji na temat severities zobacz Database Engine Error Severities.

Stan

Niektóre komunikaty o błędach można podnieść w wielu punktach kod Database Engine. Na przykład błąd 1105 można podnieść w kilku różnych warunków.Każdy określony warunek, który wywołuje błąd przypisuje kod stanu unikatowego.

Podczas przeglądania bazy danych, które zawierają informacje dotyczące znanych problemów, takich jak Microsoft Baza wiedza, można użyć numeru stanu można określić, czy problem nagrania jest taka sama, jak został napotkany błąd. Na przykład jeśli artykuł bazy wiedza opisuje błąd 1105 zawierającego stan 2 i otrzymaną wiadomość błąd 1105 miał stan 3, ten błąd jest prawdopodobnie ma różne przyczyny niż ten, który zgłosił w artykule.

A Microsoft Pracownik pomocy technicznej można użyć kodu stanu z błędem aby znaleźć lokalizację w urządzenie źródłowe kodu w przypadku gdy jest uruchamiany kod tego błędu. Te informacje mogą zawierać dodatkowe pomysły dotyczące zdiagnozować problem.

Nazwa procedury

To nazwa procedura przechowywana lub wyzwalacz, w którym wystąpił błąd.

Numer wiersza

Wskazuje, które instrukcja partia, procedura przechowywana, wyzwalacza lub funkcja wygenerował błąd.

Wszystkie systemu i komunikaty zdefiniowane przez użytkownika o błędach w wystąpieniu Database Engine znajdują się w sys.messages Służy do wyświetlania katalogu. Instrukcja RAISERROR można użyć do zwrócenia zdefiniowanych przez użytkownika błędów aplikacji.

All database APIs, such as the Microsoft .NET FrameworkSQLClient namespace, ActiveX Data Objects (ADO), OLE DB, and Open Database Connectivity (ODBC), report the basic error attributes.Informacje te obejmują ciąg numer i komunikat błędu.Jednak nie wszystkie interfejsy API zgłaszają inne atrybuty błąd.Aby uzyskać więcej informacji zobaczObsługa błędów i komunikatów w aplikacji.

Informacje o błędzie, który występuje w zakresie blok TRY konstrukcji TRY…CATCH można uzyskać w Transact-SQL kod przy użyciu funkcji, takich jak ERROR_LINE, ERROR_MESSAGE, ERROR_NUMBER ERROR_PROCEDURE, ERROR_SEVERITY i ERROR_STATE w zakresie skojarzone blok CATCH. Aby uzyskać więcej informacji zobacz Pobiera informacje o błędach języka Transact-SQL i Za pomocą TRY... CATCH instrukcji języka Transact-SQL.

Przykłady

W następujących przykładowych kwerendach sys.messages Widok, aby uzyskać listę wszystkich systemu i komunikaty zdefiniowane przez użytkownika o błędach w katalogu Database Engine zawierające 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 zobaczsys.Messages (języka Transact-SQL).