DEVE-SE FAZER BACKUP DO BANCO DE DADOS PARA RODAR OS COMANDOS ABAIXO !
Listar erros
USE etrade GO ALTER DATABASE etrade SET SINGLE_USER;
/* COLOCA O BANCO EM MODO SINGLE USER PARA EXECUTAR OS COMANDOS ABAIXO */
DBCC CHECKDB ('etrade') WITH TABLOCK, ALL_ERRORMSGS, NO_INFOMSGS; ALTER DATABASE etrade 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 9999999)
USE etrade GO ALTER DATABASE etrade SET SINGLE_USER;
DBCC CHECKTABLE(9999999,REPAIR_ALLOW_DATA_LOSS); ALTER DATABASE etrade SET MULTI_USER;
Recupera o banco com status “SINGLE USER” (usuário único)
ALTER DATABASE etrade SET MULTI_USER;
Recupera o banco com status “SUSPECT” (suspeito)
Caso o banco esteja em “Suspect”, execute os comandos abaixo. Mais informações em Repair A Suspect Database
EXEC sp_resetstatus etrade
ALTER DATABASE etrade SET EMERGENCY
DBCC checkdb(etrade)
ALTER DATABASE etrade SET SINGLE_USER WITH ROLLBACK IMMEDIATE
DBCC CheckDB (etrade, REPAIR_ALLOW_DATA_LOSS)
ALTER DATABASE etrade SET MULTI_USER
Quando o banco estiver em modo “EMERGENCY” (Emergencia)
ALTER DATABASE etrade SET SINGLE_USER WITH ROLLBACK IMMEDIATE
DBCC CheckDB (etrade, REPAIR_ALLOW_DATA_LOSS)
ALTER DATABASE etrade SET MULTI_USER
Quando o banco estiver em modo “RESTAURAR” (recuperação pendente)
ALTER DATABASE Etrade SET EMERGENCY;
GO
ALTER DATABASE Etrade set single_user
GO
DBCC CHECKDB (Etrade, REPAIR_ALLOW_DATA_LOSS) WITH ALL_ERRORMSGS;
GO
ALTER DATABASE Etrade 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: SQL SERVER CENTRAL
DBCC CHECKDB(etrade, REPAIR_ALLOW_DATA_LOSS);