Dela via


DBCC CHECKCATALOG (Transact-SQL)

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Söker efter katalogkonsekvens i den angivna databasen. Databasen måste vara online.

Transact-SQL syntaxkonventioner

Syntax

DBCC CHECKCATALOG
[
    (
    database_name | database_id | 0
    )
]
    [ WITH NO_INFOMSGS ]

Argument

database_name | database_id | 0

Namnet eller ID:t för databasen som katalogkonsekvensen ska kontrolleras för. Om det inte anges, eller om 0 anges, används den aktuella databasen. Databasnamn måste följa reglerna för identifierare.

MED NO_INFOMSGS

Undertrycker alla informationsmeddelanden.

Anmärkningar

När DBCC CHECKCATALOG kommandot har slutförts skrivs ett meddelande till SQL Server-felloggen. Om DBCC-kommandot körs anger meddelandet att det har slutförts och hur lång tid kommandot kördes. Om DBCC-kommandot stoppas innan kontrollen slutförs på grund av ett fel anger meddelandet att kommandot avslutades, ett tillståndsvärde och hur lång tid kommandot kördes. I följande tabell visas och beskrivs de tillståndsvärden som kan inkluderas i meddelandet.

Stat Beskrivning
0 Felnummer 8930 har genererats. Detta indikerar en skadad metadata som gjorde att DBCC-kommandot avslutades.
1 Felnummer 8967 har genererats. Det uppstod ett internt DBCC-fel.
2 Ett fel inträffade under reparationen av databasen i nödläge.
3 Detta indikerar en skadad metadata som gjorde att DBCC-kommandot avslutades.
4 En kontroll- eller åtkomstöverträdelse har identifierats.
5 Ett okänt fel uppstod som avslutade DBCC-kommandot.

DBCC CHECKCATALOG utför olika konsekvenskontroller mellan systemmetadatatabeller. DBCC CHECKCATALOG använder en intern databasögonblicksbild för att ge den transaktionskonsekvens som krävs för att utföra dessa kontroller. Mer information finns i Visa storleken på sparse-filen för en databasögonblicksbild (Transact-SQL) och avsnittet om databasögonblicksbild i DBCC (Transact-SQL).

Om en ögonblicksbild inte kan skapas DBCC CHECKCATALOG hämtar ett exklusivt databaslås för att få den konsekvens som krävs. Om några inkonsekvenser identifieras kan de inte repareras och databasen måste återställas från en säkerhetskopia.

Not

Att köra DBCC CHECKCATALOG mot tempdb utför inga kontroller. Det beror på att databasögonblicksbilder av prestandaskäl inte är tillgängliga på tempdb. Det innebär att den transaktionskonsekvens som krävs inte kan erhållas. Starta om database engine-tjänsten för att lösa eventuella problem med tempdb metadata.

Not

DBCC CHECKCATALOG kontrollerar inte FILESTREAM-data. FILESTREAM lagrar binära stora objekt (BLOBS) i filsystemet.

DBCC CHECKCATALOG körs också som en del av DBCC CHECKDB.

Resultatuppsättningar

Om ingen databas har angetts returnerar DBCC CHECKCATALOG:

DBCC execution completed. If DBCC printed error messages, contact your system administrator.

Om AdventureWorks2022 anges som databasnamn returnerar DBCC CHECKCATALOG:

DBCC execution completed. If DBCC printed error messages, contact your system administrator.

Behörigheter

Kräver medlemskap i sysadmin fast serverroll eller db_owner fast databasroll.

Exempel

I följande exempel kontrolleras katalogintegriteten i både den aktuella databasen och i AdventureWorks2022-databasen.

-- Check the current database.
DBCC CHECKCATALOG;
GO
-- Check the AdventureWorks database.
DBCC CHECKCATALOG (AdventureWorks2022);
GO

Se även