DBCC CHECKCATALOG (Transact-SQL)DBCC CHECKCATALOG (Transact-SQL)

QUESTO ARGOMENTO SI APPLICA A:sìSQL Server (a partire dalla versione 2008)sìDatabase SQL di AzurenoAzure SQL Data Warehouse noParallel Data Warehouse THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Verifica la consistenza dei cataloghi all'interno del database specificato.Checks for catalog consistency within the specified database. Il database deve essere online.The database must be online.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintassiSyntax


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

ArgomentiArguments

database_name | database_id | 0database_name | database_id | 0
Nome o ID del database per il quale verificare la consistenza dei cataloghi.Is the name or ID of the database for which to check catalog consistency. Se questo argomento viene omesso oppure se viene specificato il valore 0, viene utilizzato il database corrente.If not specified, or if 0 is specified, the current database is used. I nomi dei database devono essere conformi alle regole per identificatori.Database names must comply with the rules for identifiers.

WITH NO_INFOMSGSWITH NO_INFOMSGS
Disattiva tutti i messaggi informativi.Suppresses all informational messages.

OsservazioniRemarks

Dopo il completamento del comando DBCC CATALOG, viene scritto un messaggio nel log degli errori di SQL ServerSQL Server.After the DBCC CATALOG command finishes, a message is written to the SQL ServerSQL Server error log. Se il comando DBCC viene eseguito correttamente, il messaggio indica il completamento corretto e la durata dell'esecuzione del comando.If the DBCC command successfully executes, the message indicates a successful completion and the amount of time that the command ran. Se il comando DBCC viene arrestato prima del completamento del controllo a causa di un errore, il messaggio indica che il comando è stato terminato e specifica un valore di stato e la durata dell'esecuzione del comando.If the DBCC command stops before completing the check because of an error, the message indicates the command was terminated, a state value, and the amount of time the command ran. Nella tabella seguente sono elencati e descritti i valori di stato che possono essere inclusi nel messaggio.The following table lists and describes the state values that can be included in the message.

StateState DescriptionDescription
00 È stato generato l'errore numero 8930.Error number 8930 was raised. Indica che il comando DBCC è stato terminato a causa di un danneggiamento dei metadati.This indicates a metadata corruption that caused the DBCC command to terminate.
11 È stato generato l'errore numero 8967.Error number 8967 was raised. Si è verificato un errore DBCC interno.There was an internal DBCC error.
22 Si è verificato un errore durante un ripristino di database in modalità di emergenza.A failure occurred during emergency mode database repair.
33 Indica che il comando DBCC è stato terminato a causa di un danneggiamento dei metadati.This indicates a metadata corruption that caused the DBCC command to terminate.
44 È stata rilevata una violazione di accesso o asserzione.An assert or access violation was detected.
55 Si è verificato un errore sconosciuto che ha causato l'interruzione del comando DBCC.An unknown error occurred that terminated the DBCC command.

DBCC CHECKCATALOG esegue vari controlli di consistenza tra le tabelle di metadati di sistema.DBCC CHECKCATALOG performs various consistency checks between system metadata tables. DBCC CHECKCATALOG utilizza uno snapshot interno del database per garantire la consistenza necessaria a livello di transazioni per eseguire queste verifiche.DBCC CHECKCATALOG uses an internal database snapshot to provide the transactional consistency that it needs to perform these checks. Per ulteriori informazioni, vedere visualizzare le dimensioni del File Sparse di uno Snapshot del Database ( Transact-SQL ) e la sezione "DBCC dell'utilizzo di Snapshot interno del Database" in DBCC ( Transact-SQL ) .For more information, see View the Size of the Sparse File of a Database Snapshot (Transact-SQL) and the "DBCC Internal Database Snapshot Usage" section in DBCC (Transact-SQL). Se risulta impossibile creare uno snapshot, DBCC CHECKCATALOG acquisisce un blocco esclusivo a livello di database per ottenere la consistenza richiesta.If a snapshot cannot be created DBCC CHECKCATALOG acquires an exclusive database lock to obtain the required consistency. Le eventuali inconsistenze rilevate non potranno essere riparate e pertanto sarà necessario ripristinare il database da un backup.If any inconsistencies are detected, they cannot be repaired and the database must be restored from a backup.

Nota

Esecuzione di DBCC CHECKCATALOG su tempdb non esegue alcun controllo.Running DBCC CHECKCATALOG against tempdb does not perform any checks. Questo avviene perché, per motivi di prestazioni, gli snapshot del database non sono disponibili in tempdb.This is because, for performance reasons, database snapshots are not available on tempdb. Ciò significa che non è possibile ottenere la consistenza delle transazioni necessaria.This means that the required transactional consistency cannot be obtained. Riciclare il server per risolvere gli eventuali tempdb problemi relativi ai metadati.Recycle the server to resolve any tempdb metadata issues.

Nota

I dati di FILESTREAM non vengono controllati da DBCC CHECKCATALOG.DBCC CHECKCATALOG does not check FILESTREAM data. Tramite FILESTREAM vengono archiviati oggetti binari di grandi dimensioni (BLOB) nel file system.FILESTREAM stores binary large objects (BLOBS) on the file system.

DBCC CHECKCATALOG viene inoltre eseguita come parte di DBCC CHECKDB.DBCC CHECKCATALOG is also run as part of DBCC CHECKDB.

Set di risultatiResult Sets

Se non si specifica alcun database, DBCC CHECKCATALOG restituisce:If no database is specified, DBCC CHECKCATALOG returns:

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

Se come nome del database si specifica AdventureWorks2012AdventureWorks2012, DBCC CHECKCATALOG restituisce:If AdventureWorks2012AdventureWorks2012 is specified as the database name, DBCC CHECKCATALOG returns:

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

PermissionsPermissions

È richiesta l'appartenenza di sysadmin ruolo predefinito del server, o db_owner ruolo predefinito del database.Requires membership in the sysadmin fixed server role, or the db_owner fixed database role.

EsempiExamples

Nell'esempio seguente viene eseguito il controllo dell'integrità dei cataloghi nel database corrente e nel database AdventureWorks.The following example checks the catalog integrity in both the current database and in the AdventureWorks database.

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

Vedere ancheSee Also

DBCC (Transact-SQL)DBCC (Transact-SQL)
Tabelle di sistema ( Transact-SQL )System Tables (Transact-SQL)