Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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.