Lezen in het Engels

Delen via


DBCC CHECKCATALOG (Transact-SQL)

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Hiermee wordt gecontroleerd op catalogusconsistentie binnen de opgegeven database. De database moet online zijn.

Transact-SQL syntaxisconventies

Syntaxis

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

Argumenten

database_name | database_id | 0

De naam of id van de database waarvoor de catalogusconsistentie moet worden gecontroleerd. Als dit niet is opgegeven of als 0 is opgegeven, wordt de huidige database gebruikt. Databasenamen moeten voldoen aan de regels voor id's.

MET NO_INFOMSGS

Onderdrukt alle informatieve berichten.

Opmerkingen

Nadat de opdracht DBCC CHECKCATALOG is voltooid, wordt er een bericht naar het SQL Server-foutenlogboek geschreven. Als de DBCC-opdracht is uitgevoerd, geeft het bericht een geslaagde voltooiing aan en de hoeveelheid tijd die de opdracht heeft uitgevoerd. Als de DBCC-opdracht stopt voordat de controle wordt voltooid vanwege een fout, geeft het bericht aan dat de opdracht is beëindigd, een statuswaarde en de hoeveelheid tijd die de opdracht heeft uitgevoerd. In de volgende tabel worden de statuswaarden vermeld en beschreven die in het bericht kunnen worden opgenomen.

Staat Beschrijving
0 Foutnummer 8930 is gegenereerd. Dit geeft een beschadiging van metagegevens aan waardoor de DBCC-opdracht is beëindigd.
1 Foutnummer 8967 is gegenereerd. Er is een interne DBCC-fout opgetreden.
2 Er is een fout opgetreden tijdens het herstellen van de database in de noodmodus.
3 Dit geeft een beschadiging van metagegevens aan waardoor de DBCC-opdracht is beëindigd.
4 Er is een schending van assert of toegang gedetecteerd.
5 Er is een onbekende fout opgetreden die de DBCC-opdracht heeft beëindigd.

DBCC CHECKCATALOG voert verschillende consistentiecontroles uit tussen systeemmetagegevenstabellen. DBCC CHECKCATALOG maakt gebruik van een momentopname van een interne database om de transactionele consistentie te bieden die nodig is om deze controles uit te voeren. Zie voor meer informatie De grootte van het Sparse-bestand van een momentopname van een database (Transact-SQL) en het gedeelte databasemomentopname van dbcc weergeven sectie in DBCC (Transact-SQL).

Als er geen momentopname kan worden gemaakt DBCC CHECKCATALOG een exclusieve databasevergrendeling verkrijgt om de vereiste consistentie te verkrijgen. Als er inconsistenties worden gedetecteerd, kunnen ze niet worden hersteld en moet de database worden hersteld vanuit een back-up.

Notitie

Het uitvoeren van DBCC CHECKCATALOG op tempdb voert geen controles uit. Dit komt omdat databasemomentopnamen om prestatieredenen niet beschikbaar zijn op tempdb. Dit betekent dat de vereiste transactionele consistentie niet kan worden verkregen. Start de Database Engine-service opnieuw om eventuele problemen met tempdb metagegevens op te lossen.

Notitie

DBCC CHECKCATALOG controleert geen FILESTREAM-gegevens. FILESTREAM slaat binaire grote objecten (BLOBS) op in het bestandssysteem.

DBCC CHECKCATALOG wordt ook uitgevoerd als onderdeel van DBCC CHECKDB-.

Resultatensets

Als er geen database is opgegeven, retourneert DBCC CHECKCATALOG:

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

Als AdventureWorks2022 is opgegeven als databasenaam, retourneert DBCC CHECKCATALOG:

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

Machtigingen

Vereist lidmaatschap van de sysadmin vaste serverfunctie of de db_owner vaste databaserol.

Voorbeelden

In het volgende voorbeeld wordt de catalogusintegriteit in zowel de huidige database als in de AdventureWorks2022-database gecontroleerd.

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

Zie ook