|

Verificando a Integridade e Consistência do Catálogo no SQL Server

Compartilhe :

O comando DBCC CHECKCATALOG verifica a consistência entre as tabelas de metadados do sistema de um banco de dados, ou seja, confirma se as informações internas sobre tabelas, colunas, tipos de dados e demais objetos do banco estão íntegras e coerentes entre si.

Detalhes importantes antes de usar

  • O banco de dados especificado precisa estar online para que a verificação seja executada.
  • O comando não pode ser executado no banco tempdb.
  • Desde o SQL Server 2005, DBCC CHECKDB já inclui, por padrão, as verificações equivalentes às do DBCC CHECKCATALOG. Ou seja, se você já roda DBCC CHECKDB regularmente, a consistência do catálogo já está sendo verificada junto. DBCC CHECKCATALOG continua sendo útil quando você quer checar só essa parte específica, de forma isolada e mais rápida, sem rodar a verificação completa do banco.

Sintaxe

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

Argumentos

  • database_name | database_id | 0: nome ou ID do banco de dados a ser verificado. Se não for informado, ou se 0 for especificado, o banco de dados atual da sessão é usado.
  • WITH NO_INFOMSGS: suprime as mensagens informativas, deixando a saída com apenas os erros relevantes, quando houver.

Exemplo básico

Para verificar a consistência do catálogo de um banco específico:

DBCC CHECKCATALOG('NomeDoBanco');

Outros exemplos

Verificando o banco de dados atual da sessão, sem informar nome:

DBCC CHECKCATALOG;
GO

Verificando um banco específico, com um exemplo usando o AdventureWorks:

DBCC CHECKCATALOG(AdventureWorks2019);
GO

O que fazer se forem encontrados erros

DBCC CHECKCATALOG é uma ferramenta de diagnóstico: ele reporta inconsistências, mas não tenta corrigi-las automaticamente (diferente de DBCC CHECKTABLE e DBCC CHECKDB, que aceitam opções de reparo). Se DBCC CHECKCATALOG encontrar problemas, o próximo passo recomendado é rodar DBCC CHECKDB no mesmo banco, já que ele reúne verificações mais completas e, quando necessário, oferece opções de reparo.

Conclusão

DBCC CHECKCATALOG é útil para uma verificação rápida e isolada da consistência do catálogo de metadados de um banco. Como essa checagem já faz parte do DBCC CHECKDB desde o SQL Server 2005, na maioria dos casos rodar CHECKDB periodicamente já cobre essa necessidade; use CHECKCATALOG isoladamente quando quiser uma verificação mais pontual e rápida, sem o custo de checar o banco inteiro.

Materiais e leituras que recomendamos para você:

Referência: Documentação oficial do DBCC CHECKCATALOG (Microsoft Docs)

Posts Similares