数据库损坏。
尝试用 VALIDATE DATABASE 来诊断和修复问题。
数据库容器索引(.dcx)损坏或与数据库容器文件(.dbc)不同步,通常是非正常退出系统的结果。
通过关闭数据库、删除索引文件 dbc_name.DCX 并重新打开数据库来重建索引。
第一步:在数据库“属性”选项下,选择“选项”,选择“限制访问”,值改为“SINGLE_USER”第二步:执行SQL
DBCC CHECKDB (数据库名称如mytable, repair_allow_data_loss) with NO_INFOMSGS
第三步:执行SQL
DBCC CHECKDB
如果还有错误,继续执行第二步
第四步:在数据库“属性”选项下,选择“选项”,选择“限制访问”,值改为“MUTI_USER”
进入查询分析器中,选择所使用的数据库,并检查该数据库是否存在错误。
可以看到该数据库存在4个分配错误和1个一致性错误。 (为你实际要处理 的数据库.)
发现错误后要开始修复,所使用语句下:sp_dboption 'DbName', 'single user', 'true'--把数据库置为单用户模式DBCC checkdb('DbName',REPAIR_ALLOW_DATA_LOSS)--在允许数据丢失情况下修复数据库。 如果DBCC checkdb('DbName',REPAIR_A LLOW_DATA_LOSS)语句执行一次不行,可以在多执行几次直到没有再提示数据库有错误为止。
检查没有错误后,把数据库重新设置为多用户模式sp_dboption 'local', 'single user', 'false'--设置为多用户模式 这样这个数据库的错误修复就完成了 。然后停止掉SQLSERVER,重新启动服务器就可以.这种方法对于一般出现问题可以不用安装企业管理器。直接在服务器用OSQL –E 进入数据库。然后通过上面两条命令来修复数据库。这样速度比较快。
sp_dboption 'czbt2', 'single user', true
use czbt2
DBCC checktable('hnxc.czbt_btdj',REPAIR_ALLOW_DATA_LOSS)
select * from hnxc.czbt_btdj
好了后再:sp_dboption 'czbt2', 'single user', false把单用户改回来
我尽力了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)