Precisei de fazer uma manutenção num banco de um cliente esses dias e usei os seguintes comandos:
Para pegar erros no banco
USE Nome_banco GO EXEC Sp_dboption 'Nome_banco', 'single user', 'true' DBCC CHECKDB ('Nome_banco') WITH TABLOCK, ALL_ERRORMSGS, NO_INFOMSGS; EXEC Sp_dboption 'Nome_banco', 'single user', 'false' /* Torna de volta single user false, para o acesso ao banco ficar normal novamente */ GO |
fix para corrigir os erros que foram encontrados no comando anterior:
1 2 3 4 5 6 7 8 | USE Nome_banco GO EXEC Sp_dboption 'Nome_banco', 'single user', 'true' /* Deixa em modo single user, para executar os comandos abaixo */ DBCC CHECKTABLE(1823762000,REPAIR_ALLOW_DATA_LOSS) EXEC Sp_dboption 'Nome_banco', 'single user', 'false' /* Torna de volta single user false, para o acesso ao banco ficar normal novamente */ GO |
Na linha 5 está o comando que corrige os erros da tabela o id (1823762000) da tabela você consegue pegar no primeiro comando que passei onde lista-se os erros do banco nele tem as tabelas e os ids com erros.
Se estiver usando SQL 2012 o comando muda para:
1 2 3 4 5 6 7 8 | USE Nome_banco GO ALTER DATABASE Nome_banco SET SINGLE_USER /* Deixa em modo single user, para executar os comandos abaixo */ DBCC CHECKTABLE(1823762000,REPAIR_ALLOW_DATA_LOSS) ALTER DATABASE Nome_banco SET MULTI_USER /* Torna de volta single user false, para o acesso ao banco ficar normal novamente */ GO |
Ivan Ferro
Obrigado Amigo!
Me ajudou muito!
Estava com um problema de integridade em um BD no meu sistema Cartão Ponto da Empresa e seu auxilio me ajudou a recuperar as tabelas corrompidas.
Obrigado mesmo PARABÉNS PELO POST!