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
Einzelheiten
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
eine Inkonsistenz in den Systemmetadatentabellen für das angegebene Objekt gefunden. Das heißt, es gibt eine Inkonsistenz zwischen der aufgezeichneten Objekt-ID und dem in der Fehlermeldung angegebenen Objekt.
Dieser Fehler kann auftreten, wenn eine oder mehrere Systemtabellen manuell aktualisiert wurden, sodass eine Inkonsistenz in den Systemmetadaten erstellt wird. Beispielsweise können Sie ein Objekt manuell aus der sysobjects
Tabelle löschen, ohne die zugeordneten Zeilen in anderen Tabellen wie sysindexes
z. B. und syscolumns
.
Dieser Fehler kann auftreten, wenn eine Datenbank ausgeführt DBCC CHECKDB
wird, die von SQL Server 2000 (8.x) auf eine höhere Version von SQL Server aktualisiert wurde. In SQL Server 2000 (8.x) DBCC CHECKDB
wurden keine Funktionen enthalten DBCC CHECKCATALOG
, sodass der Fehler nicht vor dem Upgrade abgefangen wird, es sei denn DBCC CHECKCATALOG
, der Fehler wird speziell für die Datenbank in SQL Server 2000 (8.x) ausgeführt.
Möglicherweise werden alle folgenden Fehler zusammen mit Fehler 8992 angezeigt:
Meldungs-ID | Text der Nachricht |
---|---|
3851 |
An invalid row (%ls) was found in the system table sys.%ls%ls. |
3852 |
Row (%ls) in sys.%ls%ls does not have a matching row (%ls) in sys.%ls%ls. |
3853 |
Attribute (%ls) of row (%ls) in sys.%ls%ls does not have a matching row (%ls) in sys.%ls%ls. |
3854 |
Attribute (%ls) of row (%ls) in sys.%ls%ls has a matching row (%ls) in sys.%ls%ls that is invalid. |
3855 |
Attribute (%ls) exists without a row (%ls) in sys.%ls%ls. |
3856 |
Attribute (%ls) exists but should not for row (%ls) in sys.%ls%ls. |
3857 |
The attribute (%ls) is required but is missing for row (%ls) in sys.%ls%ls. |
3858 |
The attribute (%ls) of row (%ls) in sys.%ls%ls has an invalid value. |
Benutzeraktion
Ablegen und neu erstellen Sie das angegebene Objekt
Wenn möglich, löschen Sie das angegebene Objekt, und erstellen Sie es erneut. Wenn das Objekt beispielsweise eine gespeicherte Prozedur oder ein benutzerdefinierter Typ ist, kann das Erneute Erstellen des Objekts das Problem beheben.
Aus Sicherung wiederherstellen
Wenn das Problem nicht hardwarebezogen ist und eine bekannte saubere Sicherung verfügbar ist, stellen Sie die Datenbank aus der Sicherung wieder her. Diese Aktion gilt nur, wenn die Sicherung nicht den Metadatenfehler 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.
DBCC CHECKDB kann diesen Fehler nicht reparieren.
Dieser Fehler kann nicht repariert werden. Wenn Sie die Datenbank nicht aus einer Sicherung wiederherstellen können, wenden Sie sich an den Microsoft-Support.
Systemtabellen nicht manuell aktualisieren
Nehmen Sie keine manuellen Aktualisierungen an Systemtabellen vor. SQL Server unterstützt keine manuellen Änderungen an Systemdatenbanken. Wenn Sie eine Systemtabelle in SQL Server-Datenbank aktualisieren, werden die folgenden Ereignisse protokolliert:
Wenn eine Systemtabelle manuell aktualisiert wird
Msg 17659: Warning: System table ID <id> has been updated directly in database ID <id> and cache coherence may not have been maintained. SQL Server should be restarted.
Starten einer Datenbank mit einer Systemtabelle, die manuell aktualisiert wurde
Msg 3859: Warning: The system catalog was updated directly in database ID <id>, most recently at date_time.
Sie führen den BEFEHL DBCC CHECKDB aus, nachdem eine Systemtabelle manuell aktualisiert wurde.
Msg 3859: Warning: The system catalog was updated directly in database ID <id>, most recently at date_time.