Corrigindo erros nas tabelas de um banco MS SQL

oraculum

Tagged: ,

Sql Server Error

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

 

Share Button

One Comment

  1. 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!

    Reply

Leave a Reply