Corrigindo erros nas tabelas SQL

 DEVE-SE FAZER BACKUP DO BANCO DE DADOS PARA RODAR OS COMANDOS ABAIXO ! 

Listar erros

USE NOMEDOBANCO
GO
ALTER DATABASE NOMEDOBANCO SET SINGLE_USER; 
/* Coloca o banco em modo single user para executar os comandos abaixo */ 
DBCC CHECKDB ('NOMEDOBANCO ') WITH TABLOCK, ALL_ERRORMSGS, NO_INFOMSGS; 
ALTER DATABASE NOMEDOBANCO SET MULTI_USER;
/* Volta o banco em modo multi user */

Depois de listar, execute este comando (informe o código do erro no lugar do XXXXXX)

USE NOMEDOBANCO
GO    
ALTER DATABASE NOMEDOBANCO SET SINGLE_USER;     
DBCC CHECKTABLE(XXXXXX,REPAIR_ALLOW_DATA_LOSS);
ALTER DATABASE NOMEDOBANCO SET MULTI_USER;

Recupera o banco com status “SINGLE USER” (usuário único)

ALTER DATABASE NOMEDOBANCO SET MULTI_USER;

Recupera o banco com status “SUSPECT” (suspeito)
Caso o banco esteja em “Suspect”, execute os comandos abaixo. Mais informações em Link

EXEC sp_resetstatus NOMEDOBANCO
ALTER DATABASE NOMEDOBANCO SET EMERGENCY
DBCC checkdb(NOMEDOBANCO )
ALTER DATABASE NOMEDOBANCO SET SINGLE_USER WITH ROLLBACK IMMEDIATE
DBCC CheckDB (NOMEDOBANCO , REPAIR_ALLOW_DATA_LOSS)
ALTER DATABASE NOMEDOBANCO SET MULTI_USER

Quando o banco estiver em modo “EMERGENCY” (Emergencia)

ALTER DATABASE NOMEDOBANCO SET SINGLE_USER WITH ROLLBACK IMMEDIATE
DBCC CheckDB (NOMEDOBANCO , REPAIR_ALLOW_DATA_LOSS)
ALTER DATABASE NOMEDOBANCO SET MULTI_USER

Quando o banco estiver em modo “RESTAURAR” (recuperação pendente)

ALTER DATABASE NOMEDOBANCO SET EMERGENCY;
GO
ALTER DATABASE NOMEDOBANCO set single_user
GO
DBCC CHECKDB (NOMEDOBANCO, REPAIR_ALLOW_DATA_LOSS) WITH ALL_ERRORMSGS;
GO 
ALTER DATABASE NOMEDOBANCO set multi_user
GO 

Recuperar o banco todo

Não é muito aconselhável rodar isso sem antes dar um checkdb pra ver os erros, pois é importante que o banco conheça os erros antes.
Veja mais aqui: Link

DBCC CHECKDB(NOMEDOBANCO, REPAIR_ALLOW_DATA_LOSS);

Seja o primeiro a comentar

Faça um comentário

Seu e-mail não será publicado.


*