Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Podrobnosti
| Položka | Hodnota |
|---|---|
| Název produktu | SQL Server |
| ID události | 8992 |
| Zdroj událostí | MSSQLSERVER |
| Součást | SQLEngine |
| Symbolický název | DBCC3_CHECK_CATALOG |
| Text zprávy | Zkontrolujte stav úrovně chyby katalogu: MESSAGE. |
Poznámka:
8992 Chybová zpráva odkazuje na jinou konkrétní zprávu (od 3851 do 3858) o skutečné nekonzistence.
Vysvětlení
DBCC CHECKCATALOG nebo DBCC CHECKDB našla nekonzistence v tabulkách systémových metadat pro zadaný objekt. To znamená, že mezi zaznamenaným ID objektu a objektem zadaným v chybové zprávě je nekonzistence.
K této chybě může dojít, když se jedna nebo více systémových tabulek ručně aktualizovala způsobem, který vytvoří nekonzistence v systémových metadatech. Můžete například ručně odstranit objekt z sysobjects tabulky bez odebrání přidružených řádků v jiných tabulkách, například sysindexes a syscolumns.
K této chybě může dojít při spuštění DBCC CHECKDB v databázi, která byla upgradována z SQL Serveru 2000 (8.x) na novější verzi SQL Serveru. V systému SQL Server 2000 (8.x) DBCC CHECKDB nezahrnulo DBCC CHECKCATALOG funkce, takže se chyba před upgradem nezachytí, pokud DBCC CHECKCATALOG se nespustí konkrétně proti databázi v SYSTÉMU SQL Server 2000 (8.x).
Může se zobrazit některá z následujících chyb společně s chybou 8992:
| ID zprávy | Text zprávy |
|---|---|
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. |
Akce uživatele
Odstranění a opětovné vytvoření zadaného objektu
Pokud je to možné, odstraňte zadaný objekt a vytvořte ho znovu. Například pokud je objekt uložená procedura nebo uživatelem definovaný typ, opětovné vytvoření objektu může problém vyřešit.
Obnovení ze zálohy
Pokud problém nesouvisí s hardwarem a je k dispozici známá čistá záloha, obnovte databázi ze zálohy. Tato akce se dá použít jenom v případě, že zálohování neobsahuje chybu metadat.
Export dat do nové databáze
Pokud záloha obsahuje také nekonzistence metadat, musíte vytvořit novou databázi a exportovat obsah existující databáze do nové databáze.
DBCC CHECKDB nemůže tuto chybu opravit.
Tuto chybu nelze opravit. Pokud nemůžete obnovit databázi ze zálohy, obraťte se na podporu Microsoftu.
Ruční aktualizace systémových tabulek
Neprodávejte ruční aktualizace systémových tabulek. SQL Server nepodporuje žádné ruční změny systémových databází. Pokud aktualizujete systémovou tabulku v databázi SQL Serveru, protokolují se následující události:
Při ruční aktualizaci systémové tabulky
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.
Spuštění databáze se systémovou tabulkou, která byla ručně aktualizována
Msg 3859: Warning: The system catalog was updated directly in database ID <id>, most recently at date_time.
Příkaz DBCC CHECKDB spustíte po ruční aktualizaci systémové tabulky.
Msg 3859: Warning: The system catalog was updated directly in database ID <id>, most recently at date_time.