Partilhar via


DBCC CHECKCATALOG (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada SQL do Azure

Verifica a consistência do catálogo no banco de dados especificado. A base de dados deve estar online.

Transact-SQL convenções de sintaxe

Sintaxe

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

Argumentos

| database_namedatabase_id | 0

O nome ou ID do banco de dados para o qual verificar a consistência do catálogo. Se não for especificado, ou se 0 for especificado, o banco de dados atual será usado. Os nomes das bases de dados devem estar em conformidade com as regras relativas aos identificadores de .

COM NO_INFOMSGS

Suprime todas as mensagens informativas.

Comentários

Após a conclusão do comando DBCC CHECKCATALOG, uma mensagem é gravada no log de erros do SQL Server. Se o comando DBCC for executado com êxito, a mensagem indicará uma conclusão bem-sucedida e a quantidade de tempo que o comando foi executado. Se o comando DBCC parar antes de concluir a verificação devido a um erro, a mensagem indica que o comando foi encerrado, um valor de estado e a quantidade de tempo que o comando executou. A tabela a seguir lista e descreve os valores de estado que podem ser incluídos na mensagem.

Estado Descrição
0 O erro número 8930 foi gerado. Isso indica uma corrupção de metadados que causou o encerramento do comando DBCC.
1 O erro número 8967 foi gerado. Houve um erro interno do DBCC.
2 Ocorreu uma falha durante o reparo do banco de dados no modo de emergência.
3 Isso indica uma corrupção de metadados que causou o encerramento do comando DBCC.
4 Foi detetada uma violação de afirmação ou acesso.
5 Ocorreu um erro desconhecido que encerrou o comando DBCC.

DBCC CHECKCATALOG executa várias verificações de consistência entre tabelas de metadados do sistema. DBCC CHECKCATALOG usa um instantâneo de banco de dados interno para fornecer a consistência transacional necessária para executar essas verificações. Para obter mais informações, consulte Exibir o tamanho do arquivo esparso de um de instantâneo de banco de dados (Transact-SQL) e a seção de uso de instantâneo de banco de dados interno DBCC em DBCC (Transact-SQL).

Se não for possível criar um snapshot, DBCC CHECKCATALOG adquire um bloqueio de banco de dados exclusivo para obter a consistência necessária. Se forem detetadas inconsistências, elas não poderão ser reparadas e o banco de dados deverá ser restaurado a partir de um backup.

Observação

Executar DBCC CHECKCATALOG contra tempdb não executa nenhuma verificação. Isso ocorre porque, por motivos de desempenho, os instantâneos do banco de dados não estão disponíveis no tempdb. Isso significa que a consistência transacional necessária não pode ser obtida. Reinicie o serviço Mecanismo de Banco de Dados para resolver quaisquer problemas de metadados tempdb.

Observação

DBCC CHECKCATALOG não verifica os dados FILESTREAM. FILESTREAM armazena objetos binários grandes (BLOBS) no sistema de arquivos.

DBCC CHECKCATALOG também é executado como parte de DBCC CHECKDB.

Conjuntos de resultados

Se nenhum banco de dados for especificado, DBCC CHECKCATALOG retornará:

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

Se AdventureWorks2025 for especificado como o nome do banco de dados, DBCC CHECKCATALOG retornará:

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

Permissões

Requer associação ao sysadmin função de servidor fixa ou à função de banco de dados fixa db_owner.

Exemplos

O exemplo a seguir verifica a integridade do catálogo no banco de dados atual e no banco de dados AdventureWorks2025.

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

Ver também