Dela via


MSSQLSERVER_8992

gäller för:SQL Server

Detaljer

Objekt Värde
Produktnamn SQL Server
Händelse-ID 8992
Händelsekälla MSSQLSERVER
Komponent SQLEngine
Symboliskt namn DBCC3_CHECK_CATALOG
Meddelandetext Kontrollera TILLSTÅNDSTILLSTÅND FÖR KATALOG MSG-FELNIVÅ: MEDDELANDE.

Anmärkning

8992 Felmeddelandet refererar till ett annat specifikt meddelande (från 3851 till 3858) om den faktiska inkonsekvensen.

Förklaring

DBCC CHECKCATALOG eller DBCC CHECKDB hittade en inkonsekvens i systemmetadatatabellerna för det angivna objektet. Det vill: det finns en inkonsekvens mellan det inspelade objekt-ID:t och objektet som anges i felmeddelandet.

Det här felet kan inträffa när en eller flera systemtabeller uppdaterades manuellt på ett sätt som skapar en inkonsekvens i systemmetadata. Du kan till exempel manuellt ta bort ett objekt från sysobjects tabellen utan att ta bort associerade rader i andra tabeller som sysindexes och syscolumns.

Det här felet kan inträffa när du kör DBCC CHECKDB mot en databas som har uppgraderats från SQL Server 2000 (8.x) till en senare version av SQL Server. I SQL Server 2000 (8.x) DBCC CHECKDB inkluderades DBCC CHECKCATALOG inte funktioner, så felet fångas inte före uppgraderingen om inte DBCC CHECKCATALOG specifikt körs mot databasen i SQL Server 2000 (8.x).

Du kan se något av följande fel tillsammans med fel 8992:

Meddelande-ID Meddelandetext
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.

Användaråtgärd

Släppa och återskapa det angivna objektet

Om möjligt släpper och återskapar du det angivna objektet. Om objektet till exempel är en lagrad procedur eller användardefinierad typ kan det lösa problemet genom att återskapa objektet.

Återställa från säkerhetskopia

Om problemet inte är maskinvarurelaterat och en känd ren säkerhetskopia är tillgänglig återställer du databasen från säkerhetskopian. Den här åtgärden gäller endast om säkerhetskopieringen inte innehåller metadatafelet.

Exportera data till en ny databas

Om säkerhetskopieringen också innehåller inkonsekvensen i metadata måste du skapa en ny databas och exportera innehållet i den befintliga databasen till den nya databasen.

DBCC CHECKDB kan inte reparera det här felet

Det här felet kan inte repareras. Om du inte kan återställa databasen från en säkerhetskopia kontaktar du Microsoft Support.

Uppdatera inte systemtabeller manuellt

Gör inte manuella uppdateringar av systemtabeller. SQL Server stöder inte manuella ändringar av systemdatabaser. Om du uppdaterar en systemtabell i en SQL Server-databas loggas följande händelser:

När en systemtabell uppdateras manuellt

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.

Starta en databas med en systemtabell som uppdaterades manuellt

Msg 3859: Warning: The system catalog was updated directly in database ID <id>, most recently at date_time.

Du kör KOMMANDOT DBCC CHECKDB när en systemtabell har uppdaterats manuellt

Msg 3859: Warning: The system catalog was updated directly in database ID <id>, most recently at date_time.