SQL sever 2008以后版本
数据库状态显示置疑,数据库中执行以下代码:
ALTER DATABASE 数据库名称 SET EMERGENCY
ALTER DATABASE 数据库名称 SET SINGLE_USER
DBCC CheckDB (数据库名称 , REPAIR_ALLOW_DATA_LOSS)
ALTER DATABASE 数据库名称 SET MULTI_USER
执行完代码后,重启SQL sever 实例 服务。
SQL sever 2000 数据库置疑:
--1.获取数据库路径
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 = '数据库名称'
go
--2_1: 停止sql 服务, 删掉日志文件
--2_2: 启动sql 服务,重建数据库日志文件
dbcc rebuild_log('数据库名称','d:\MSSQL\data\数据库名称.log') --最好在原路径上面吧.文件夹一点要原来就存在,不然会提示错误.
go
use master
update sysdatabases set status = 8 where name = '数据库名称'
Go
sp_configure'allow updates',0
reconfigure with override
Go
--这个时候.数据库应该已经不是置疑的.并且可以使用了.只是有部分损坏
--3.修复数据库
use master
declare @databasename varchar(255)
set @databasename='数据库名称'
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'
--最后修复完.再dbcc checkdb 检查一次。