Grundlegendes zu Datenbank-Engine-Fehlern

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-Endpunkt in Microsoft FabricWarehouse in Microsoft Fabric

Von Microsoft SQL Server-Datenbank-Engine ausgelöste Fehler weisen die in der folgenden Tabelle beschriebenen Attribute auf.

attribute 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.
severity 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 den Schweregraden finden Sie unter Schweregrade von Datenbank-Engine-Fehlern.
State Einige Fehlermeldungen können für mehrere Elemente im Code für Datenbank-Engineausgelö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 Datenbank-Engine -Instanz 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, z. B. das Microsoft .NET Framework SQLClient-Namespace, ActiveX Data Objects (ADO), OLE DB und Open Database Connectivity (ODBC), melden 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 im Bereich des TRY-Blocks eines TRY...CATCH-Konstrukts auftritt, können im Transact-SQL-Code mithilfe von Funktionen wie ERROR_LINE, ERROR_MESSAGE, ERROR_NUMBER, ERROR_PROCEDURE, ERROR_SEVERITY und ERROR_STATE im Bereich 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 Datenbank-Engine 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).

Weitere Informationen

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)