修复数据库置疑

---确定硬盘没有坏道,无问题情况下
---1.停止sql 服务,获取数据库路径,删掉日志文件
use master
go
select name,reverse(substring(reverse(filename),charindex('\',reverse(filename)),1000))  from sysdatabases


---2.启动sql 服务
use master
go
sp_configure 'allow update',1

reconfigure with override
go
update sysdatabases set status = 32768 where name = 'test'
go

---重建数据库日志文件
dbcc rebuild_log('test','F:\test\data\test_log.ldf')  --最好在原路径上面,文件夹一定要原来就存在,不然会提示错误.

go

use master

update sysdatabases set status = 8 where name = 'test'

Go


sp_configure'allow updates',0

reconfigure with override

Go
---这个时候.数据库应该已经不是置疑的.并且可以使用了.只是有部分损坏

---3.修复数据库
use master
declare @databasename varchar(255)
set @databasename='test'
exec sp_dboption @databasename, N'single', N'true'
dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)
dbcc checkdb(@databasename,REPAIR_REBUILD)
exec sp_dboption @databasename, N'single', N'false'

---4.最后修复完.再dbcc checkdb一次

你可能感兴趣的:(数据库)