Grundlegendes zu Datenbankmodulfehlern

Von Microsoft SQL Server Database Engine (Datenbankmodul) ausgelöste Fehler weisen die in der folgenden Tabelle beschriebenen Attribute auf.

Attribut

Beschreibung

Fehlernummer

Jede Fehlermeldung besitzt eine eindeutige Fehlernummer.

Fehlermeldungs-Zeichenfolge

Die Fehlermeldung enthält Diagnoseinformationen über die Ursache des Fehlers. Zahlreiche Fehlermeldungen haben Ersetzungsvariablen, in die Informationen, wie z. B. der Name des Objekts, das den Fehler generiert, eingefügt werden.

Schweregrad

Der Schweregrad zeigt an, wie schwerwiegend der Fehler ist. Fehler mit einem niedrigen Schweregrad, wie z. B. 1 oder 2, sind Informationsmeldungen oder Warnungen auf niedriger Ebene. Fehler mit einem hohen Schweregrad deuten auf Probleme hin, die so bald wie möglich behoben werden sollten. Weitere Informationen zu Schweregraden finden Sie unter Schweregrade von Datenbankmodulfehlern.

Status

Einige Fehlermeldungen können für mehrere Elemente im Code für Database Engine (Datenbankmodul) ausgelöst werden. So kann z. B. der Fehler 1105 aufgrund verschiedener Bedingungen ausgelöst werden. Jeder Bedingung, die einen Fehler auslöst, wird ein eindeutiger Statuscode zugewiesen.

Beim Anzeigen von Datenbanken von bekannten Problemen, wie z. B. der Microsoft Knowledge Base, können Sie mithilfe der Statusnummer bestimmen, ob das aufgezeichnete Problem mit dem aufgetretenen Fehler übereinstimmt. Wenn z. B. ein Knowledge Base-Artikel den Fehler 1105 mit dem Status 2 erläutert und die von Ihnen empfangene Fehlermeldung 1105 den Status 3 aufwies, ist der Fehler möglicherweise auf eine andere als die im Artikel gemeldete Ursache zurückzuführen.

Der Microsoft Software Service kann auch den Statuscode von einem Fehler verwenden, um den Ort im Quellcode zu finden, wo der Fehler entstanden ist. Diese Informationen stellen möglicherweise zusätzliche Ideen zur Problemdiagnose bereit.

Name der Prozedur

Ist der Name der gespeicherten Prozedur oder des Triggers, in der oder in dem der Fehler aufgetreten ist.

Zeilennummer

Zeigt an, welche Anweisung in einem Batch, einer gespeicherten Prozedur, einem Trigger oder einer Funktion den Fehler generiert hat.

Alle System- und benutzerdefinierten Fehlermeldungen in einer Instanz von Database Engine (Datenbankmodul) sind in der Katalogsicht sys.messages enthalten. Die RAISERROR-Anweisung kann zur Rückgabe von benutzerdefinierten Fehlern an eine Anwendung verwendet werden.

Alle Datenbank-APIs, wie Microsoft .NET Framework SQLClient-Namespace, ActiveX Data Objects (ADO), OLE DB, und Open Database Connectivity (ODBC) berichten die grundlegenden Fehlerattribute. Diese Information schließt die Fehlernummer und die Meldungszeichenfolge ein. Nicht alle APIs berichten jedoch alle anderen Fehlerattribute.

Informationen zu einem Fehler, der innerhalb des Bereichs des TRY-Blocks eines TRY…CATCH-Konstrukts auftritt, können im Transact-SQL-Code mithilfe von Funktionen wie z. B. ERROR_LINE, ERROR_MESSAGE, ERROR_NUMBER, ERROR_PROCEDURE, ERROR_SEVERITY und ERROR_STATE innerhalb des Bereichs des zugehörigen CATCH-Blocks abgerufen werden. Weitere Informationen finden Sie unter TRY...CATCH (Transact-SQL).

Beispiele

Im folgenden Beispiel wird die sys.messages-Katalogsicht abgefragt, um eine Liste aller system- und benutzerdefinierten Fehlermeldungen im Database Engine (Datenbankmodul) zurückzugeben, die über englischen Text verfügen (1033).

SELECT
    message_id,
    language_id,
    severity,
    is_event_logged,
    text
  FROM sys.messages
  WHERE language_id = 1033;

Weitere Informationen finden Sie unter sys.messages (Transact-SQL).

Siehe auch

Verweis

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)

ERROR_PROCEDURE (Transact-SQL)

ERROR_SEVERITY (Transact-SQL)

ERROR_STATE (Transact-SQL)