MSSQLSERVER_8992

Gilt für:SQL Server

Details

Element Wert
Produktname SQL Server
Ereignis-ID 8992
Ereignisquelle MSSQLSERVER
Komponente SQLEngine
Symbolischer Name DBCC3_CHECK_CATALOG
Meldungstext Meldung ERROR zum Prüfen des Katalogs, Ebene LEVEL, Status STATE: MESSAGE.

Hinweis

Die Fehlermeldung 8992 verweist auf eine spezifische andere Fehlermeldung (zwischen 3851 und 3858) zur tatsächlichen Inkonsistenz.

Erklärung

DBCC CHECKCATALOG oder DBCC CHECKDB hat in den Systemmetadatentabellen eine Inkonsistenz für das angegebene Objekt festgestellt. Es handelt sich um eine Inkonsistenz zwischen der aufgezeichneten Objekt-ID und dem in der Fehlermeldung angegebenen Objekt.

Dieser Fehler kann auftreten, wenn eine oder mehrere Systemtabellen manuell auf eine Weise aktualisiert wurden, die in den Systemmetadaten eine Inkonsistenz verursacht. Zum Beispiel hat ein Benutzer möglicherweise manuell ein Objekt aus der Tabelle sysobjects gelöscht, ohne die zugeordneten Zeilen in anderen Tabellen, z.B. sysindexes und syscolumns, zu entfernen.

Dieser Fehler kann beim Ausführen von DBCC CHECKDB für eine Datenbank auftreten, die von SQL Server 2000 auf SQL Server 2005 oder höher aktualisiert wurde. In SQL Server 2000 enthält DBCC CHECKDB die DBCC CHECKCATALOG-Funktion nicht. Deshalb wird der Fehler nicht vor dem Upgrade abgefangen, es sei denn, DBCC CHECKCATALOG wurde ausdrücklich für die Datenbank in SQL Server 2000 ausgeführt.

In Verbindung mit Fehler 8992 werden möglicherweise folgende Fehler angezeigt:

Meldungs-ID Fehlertext
3851 Eine ungültige Zeile (%ls) wurde in der sys.%ls%ls-Systemtabelle gefunden.
3852 Für die Zeile (%ls) in sys.%ls%ls ist keine entsprechende Zeile (%ls) in sys.%ls%ls vorhanden.
3853 Für das Attribut (%ls) der Zeile (%ls) in sys.%ls%ls ist keine entsprechende Zeile (%ls) in sys.%ls%ls vorhanden.
3854 Für das Attribut (%ls) der Zeile (%ls) in sys.%ls%ls ist eine entsprechende Zeile (%ls) in sys.%ls%ls vorhanden, sie ist jedoch ungültig.
3855 Das Attribut (%ls) ist ohne eine Zeile (%ls) in sys.%ls%ls vorhanden.
3856 Das Attribut (%ls) ist fälschlicherweise für die Zeile (%ls) in sys.%ls%ls vorhanden.
3857 Das Attribut (%ls) ist für die Zeile (%ls) in sys.%ls%ls erforderlich, fehlt jedoch.
3858 Das Attribut (%ls) der Zeile (%ls) in sys.%ls%ls weist einen ungültigen Wert auf.

Benutzeraktion

Löschen und Neuerstellen des angegebenen Objekts

Wenn möglich, löschen Sie das angegebene Objekt, und erstellen Sie es erneut. Wenn das Objekt z. B. eine gespeicherte Prozedur oder ein benutzerdefinierter Typ ist, behebt die Neuerstellung des Objekts möglicherweise das Problem.

Sicherungswiederherstellung

Stellen Sie die Datenbank aus der Sicherung wieder her, wenn das Problem nicht hardwarebezogen ist und eine bekannte intakte Sicherungskopie vorhanden ist. Diese Aktion ist nur anwendbar, wenn die Sicherung den Metadatenfehler nicht enthält.

Exportieren der Daten in eine neue Datenbank

Wenn die Metadateninkonsistenz auch in der Sicherung enthalten ist, müssen Sie eine neue Datenbank erstellen und den Inhalt der vorhandenen Datenbank in die neue Datenbank exportieren.

Dieser Fehler kann durch DBCC CHECKDB nicht repariert werden

Dieser Fehler kann nicht repariert werden. Wenn Sie die Datenbank nicht mithilfe einer Sicherung wiederherstellen können, wenden Sie sich an den Kundenservice und -support von Microsoft.

Systemtabellen dürfen nicht manuell aktualisiert werden

Nehmen Sie keine manuellen Updates an den Systemtabellen vor. SQL Server unterstützt keine manuellen Änderungen an den Systemdatenbanken. Wenn Sie eine Systemtabelle in SQL Server-Datenbank aktualisieren, werden die folgenden Ereignisse protokolliert:

Wenn eine Systemtabelle manuell aktualisiert wird

Msg 17659: Warnung: Die ID der Systemtabelle <> wurde direkt in der Datenbank-ID <> aktualisiert, und die Cachekohärenz wurde möglicherweise nicht beibehalten. SQL Server sollte neu gestartet werden.

Beim Starten einer Datenbank mit einer manuell aktualisierten Systemtabelle

Msg 3859: Warnung: Der Systemkatalog wurde direkt in der Datenbank-ID <>aktualisiert, zuletzt bei date_time

Beim Ausführen des Befehls DBCC_CHECKDB, nachdem eine Systemtabelle manuell aktualisiert wurde

Msg 3859: Warnung: Der Systemkatalog wurde direkt in der Datenbank-ID <>aktualisiert, zuletzt bei date_time.

Weitere Informationen

Systembasistabellen