今天北斗客服在检测客户网站时发现其中一个客户的SQL Server2005数据表显示为异常,在网上查询了很多方案均未修复,例如:
--设置数据库紧急状态
use master
go
sp_configure 'allow updates',1
go
reconfigure with override
go
--设置数据库为紧急模式
update sysdatabases set status=-32768 where dbid=DB_ID('Procurement')
--重建数据库日志文件
dbcc rebuild_log('Procurement','D:\Procurement_log.ldf')
--验证数据库一致性(可省略)
dbcc checkdb('Procurement')
--设置数据库为正常状态
sp_dboption 'Procurement','dbo use only','false'
--*后一步,我们要将步骤E中设置的“允许对系统目录直接修改”一项恢复
sp_configure 'allow updates',0
go
reconfigure with override
go
结果发现,无效。以上方案只使用于SQL Server2000。经过我们一个上午的研究和测试测出终极解决方案,只需要在数据库查询中执行以下4行代码即可完美解决:
ALTER DATABASE 你的数据库名 SET EMERGRNCY
ALTER DATABASE 你的数据库名 SET SINGLE_USER
DBCC CheckDB (你的数据库名,REPAIR_ALLOW_DATA_LOSS)
ALTER DATABASE 你的数据库名 SET MULTI_USER