Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Wenn von SQL Server Datenbank-Engine ein Fehler ausgelöst wird, gibt der Schweregrad des Fehlers den Problemtyp an, der in SQL Server aufgetreten ist.
Schweregrade
In der folgenden Tabelle sind die Schweregrade der Fehler aufgeführt und beschrieben, die von SQL Server Datenbank-Engine ausgelöst werden.
| Schweregrad | Beschreibung |
|---|---|
| 0-9 | Geben Sie Informationsmeldungen an, die Statusinformationen zurückgeben oder Fehler melden, die nicht schwerwiegend sind. Der Datenbank-Engine löst keine Systemfehler mit Schweregraden zwischen 0 und 9 aus. |
| 10 | Gibt Informationsmeldungen an, die Statusinformationen zurückgeben oder Fehler melden, die nicht schwerwiegend sind. Aus Kompatibilitätsgründen konvertiert Datenbank-Engine den Schweregrad 10 in Schweregrad 0, bevor die Fehlerinformationen an die aufrufende Anwendung zurückgegeben werden. |
| 11-16 | Verweisen auf Fehler, die der Benutzer beheben kann. |
| 11 | Gibt an, dass das Objekt oder die Entität nicht vorhanden ist. |
| 12 | Ein spezieller Schweregrad für Abfragen, die aufgrund von speziellen Abfragehinweisen keine Sperren verwenden. In einigen Fällen können lesevorgänge, die von diesen Anweisungen ausgeführt werden, zu inkonsistenten Daten führen, da Sperren nicht verwendet werden, um Konsistenz zu gewährleisten. |
| 13 | Verweist auf Deadlockfehler der Transaktion. |
| 14 | Verweist auf sicherheitsbezogene Fehler, wie z. B. eine verweigerte Berechtigung. |
| 15 | Verweist auf Syntaxfehler im Transact-SQL-Befehl. |
| 16 | Verweist auf allgemeine Fehler, die der Benutzer beheben kann. |
| 17-19 | Verweisen auf Softwarefehler, die der Benutzer nicht beheben kann. Informieren Sie Ihren Systemadministrator über das Problem. |
| 17 | Gibt an, dass die Anweisung dazu geführt hat, dass SQL Server nicht genügend Ressourcen hat (z. B. Arbeitsspeicher, Sperren oder Speicherplatz für die Datenbank) oder ein vom Systemadministrator festgelegter Grenzwert überschritten wurde. |
| 18 | Gibt ein Problem in der Datenbankmodulsoftware an, aber die Anweisung wird abgeschlossen, und die Verbindung mit der Instanz des Datenbankmoduls wird beibehalten. Der Systemadministrator sollte informiert werden, wenn eine Meldung mit dem Schweregrad 18 auftritt. |
| 19 | Gibt an, dass ein nicht konfigurierbarer Grenzwert von Datenbank-Engine überschritten worden ist und der aktuelle Batchprozess beendet wurde. Durch Fehlermeldungen mit einem Schweregrad von 19 oder höher wird die Ausführung des aktuellen Batches beendet. Fehlermeldungen mit dem Schweregrad 19 sind selten und müssen vom Systemadministrator oder Ihrem bevorzugten Anbieter für technischen Support behoben werden. Wenden Sie sich an Ihren Systemadministrator, wenn eine Meldung mit dem Schweregrad 19 ausgelöst wird. Fehlermeldungen mit den Schweregraden 19 bis 25 werden im Fehlerprotokoll aufgezeichnet. |
| 20-24 | Gibt Systemprobleme an und sind schwerwiegende Fehler, was bedeutet, dass die Datenbankmodulaufgabe, die eine Anweisung oder einen Batch ausführt, nicht mehr ausgeführt wird. Der Task zeichnet Informationen über den Vorfall auf und wird dann beendet. In den meisten Fällen kann die Anwendungsverbindung mit der Instanz des Datenbankmoduls ebenfalls beendet werden. Wenn dies der Fall ist, kann die Anwendung je nach Problem möglicherweise keine erneute Verbindung herstellen. Fehlermeldungen in diesem Bereich können sich auf alle Prozesse auswirken, die auf Daten in der Datenbank zugreifen, und kann darauf hinweisen, dass eine Datenbank oder ein Objekt beschädigt ist. Fehlermeldungen mit den Schweregraden 19 bis 24 werden im Fehlerprotokoll aufgezeichnet. |
| 20 | Gibt an, dass bei einer Anweisung ein Problem aufgetreten ist. Da das Problem nur die aktuelle Aufgabe betrifft, ist es wahrscheinlich nicht, dass die Datenbank selbst beschädigt ist. |
| 21 | Gibt an, dass ein Problem aufgetreten ist, das sich auf alle Aufgaben in der aktuellen Datenbank auswirkt, aber es ist nicht wahrscheinlich, dass die Datenbank selbst beschädigt ist. |
| 22 | Zeigt an, dass die Tabelle oder der Index, die bzw. der in der Meldung angegeben ist, durch ein Software- oder Hardwareproblem beschädigt wurde. Fehler mit dem Schweregrad 22 treten selten auf. Führen Sie DBCC CHECKDB aus, wenn ein solcher Fehler auftritt. So stellen Sie fest, ob weitere Objekte in der Datenbank beschädigt sind. Möglicherweise betrifft das Problem nur den Puffercache und nicht der Datenträger selbst. In diesem Fall behebt ein Neustart der Instanz von Datenbank-Engine das Problem. Um den Vorgang fortzusetzen, müssen Sie eine erneute Verbindung mit der Instanz des Datenbankmoduls herstellen. Verwenden Sie andernfalls die Verwendung DBCC , um das Problem zu beheben. In einigen Fällen müssen Sie die Datenbank möglicherweise wiederherstellen.Wenn beim Neustart der Instanz des Datenbankmoduls das Problem nicht behoben wird, befindet sich das Problem auf dem Datenträger. Manchmal wird das In der Fehlermeldung angegebene Objekt zerstört. Wenn die Meldung z. B. besagt, dass die Instanz von Datenbank-Engine eine Zeile mit der Länge 0 in einem nicht gruppierten Index gefunden hat, löschen Sie den Index, und erstellen Sie ihn neu. |
| 23 | Zeigt an, dass die Integrität der gesamten Datenbank aufgrund einer Beschädigung durch ein Hardware- oder Softwareproblem zweifelhaft ist. Fehler mit dem Schweregrad 23 treten selten auf. Wenn ein solcher Fehler auftritt, führen Sie DBCC CHECKDB aus, um das Ausmaß des Schadens festzustellen. Möglicherweise betrifft das Problem nur den Cache und nicht der Datenträger selbst. In diesem Fall behebt ein Neustart der Instanz von Datenbank-Engine das Problem. Um den Vorgang fortzusetzen, müssen Sie eine erneute Verbindung mit der Instanz des Datenbankmoduls herstellen. Verwenden Sie andernfalls die Verwendung DBCC , um das Problem zu beheben. In einigen Fällen müssen Sie die Datenbank möglicherweise wiederherstellen. |
| 24 | Verweist auf einen Medienfehler. Möglicherweise muss der Systemadministrator die Datenbank wiederherstellen. Möglicherweise müssen Sie auch Ihren Hardwareanbieter anrufen. |
Schweregrad von benutzerdefinierten Fehlermeldungen
Mithilfe von sp_addmessage können benutzerdefinierte Fehlermeldungen mit Schweregraden zwischen 1 und 25 der sys.messages Katalogsicht hinzugefügt werden. Diese benutzerdefinierten Fehlermeldungen können von RAISERROR verwendet werden. Weitere Informationen finden Sie unter sp_addmessage.
Mithilfe von RAISERROR können benutzerdefinierte Fehlermeldungen mit Schweregraden zwischen 1 und 25 generiert werden.
RAISERROR kann auf eine benutzerdefinierte, in der sys.messages-Katalogsicht gespeicherte Meldung verweisen oder eine Meldung dynamisch erstellen. Wenn RAISERROR beim Generieren eines Fehlers eine benutzerdefinierte Fehlermeldung sys.messages verwendet wird, wird der durch RAISERROR den Schweregrad angegebene sys.messagesSchweregrad überschrieben. Weitere Informationen finden Sie unter RAISERROR.
Schweregrad von Fehlern und TRY…CATCH
Ein TRY...CATCH Konstrukt erfasst alle Ausführungsfehler mit dem Schweregrad größer als 10, die die Datenbankverbindung nicht beenden.
Fehler mit Schweregrad von 0 bis 10 sind Informationsmeldungen und führen nicht dazu, dass die Ausführung vom CATCH Block eines TRY...CATCH Konstrukts springt.
Fehler, die die Datenbankverbindung beenden, in der Regel mit Schweregrad von 20 bis 25, werden nicht vom CATCH Block behandelt, da die Ausführung abgebrochen wird, wenn die Verbindung beendet wird.
Weitere Informationen finden Sie unter TRY... CATCH.
Abrufen des Schweregrads eines Fehlers
Die ERROR_SEVERITY Systemfunktion kann verwendet werden, um den Schweregrad des Fehlers abzurufen, der dazu führte, dass der CATCH Block eines TRY...CATCH Konstrukts ausgeführt wird.
ERROR_SEVERITY gibt zurück NULL , wenn er außerhalb des Bereichs eines CATCH Blocks aufgerufen wird. Weitere Informationen finden Sie unter ERROR_SEVERITY.