SQL 数据库错误修复
前天一个客户的服务器突然断电,当时正有应用程序在频繁的读写数据库,导致数据库文件损坏。虽然使用下面的方法修复了“数据库可疑”问题,但是当访问某个具体的表时仍然会报出异常如下:

经过多方查找找到修复方法。
修复可疑数据库方法:
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 检查仍旧存在错误,可以使用DBCC CHECKTABLE来修复。
use 需要修复的数据库实体的名称
declare @dbname varchar(255)
set @dbname='需要修复的数据库的名称'
exec sp_dboption @dbname,'single user','true'
dbcc checktable('需要修复的数据表的名称',REPAIR_ALLOW_DATA_LOSS)
dbcc checktable('需要修复的数据表的名称',REPAIR_REBUILD)
------把’ 需要修复的数据表的名称’更改为执行DBCC CHECKDB时报错的数据表的名称
exec sp_dboption @dbname,'single user','false'
其他的一些修复语句:
DBCC DBREINDEX 重建指定数据库中表的一个或多个索引
用法:
DBCC DBREINDEX (表名,’’) 修复此表所有的索引。
4.DBCC CHECKALLOC
检查指定数据库的磁盘空间分配结构的一致性
浙公网安备 33010602011771号