sqlserver附加数据库错误823的解决方案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单位一台单机刷卡的机器,sql2000数据库,数据库名后面有“(置疑)”字样,程序无法使用。

从网上搜到方法:

解决办法:

在SQL-Server企业管理器中,新建同名数据库(这里假设为Test)后,停止数据库,把损坏的数据库文件Data.mdf和Test_log.LDF覆盖刚才新建数据库目录下的Data.mdf和

Test_log.LDF,同时删除Test_log.LDF文件;启动数据库服务,发现数据库名Test后面有“置疑”字样。不要紧,打开SQL自带查询分析器,分别执行如下SQL语句:

第一、

exec sp_configure 'allow updates',1 RECONFIGURE WITH OVERRIDE

第二、

update sysdatabases set status=32768 where name='数据库名'

第三、

DBCC REBUILD_LOG ('数据库名','D:\database\Test_Log.LDF')

--这个没执行成功!!

第四、

update sysdatabases set status=0 where name='数据库名'

第五、

restore database 数据库名WITH RECOVERY

第六、

exec sp_configure 'allow updates',0 RECONFIGURE WITH OVERRIDE

按照此方法操作,应该能修复数据库正常访问了。如果问题依然存在,最笨的一个方法就是新建另一个数据库,把原数据库(Test)各个表的数据导出到新建数据库表中。

============================================================

补充说明:用上面的六步把数据库置疑的问题解决了,但是数据库表里还有损坏的表(inf_gdscode),把坏表导出的时候也不成功。最后在查询分析器里运行:

USE nmgbt_hcxuexipos (数据库名)

GO

DBCC CHECKTABLE ('inf_gdscode',REPAIR_ALLOW_DATA_LOSS)

GO

前六步除第三步执行成功,数据库可以访问,但程序仍无法使用,在查询分析器中执行select * into abc from 任一表

无法执行,试过另外几个修复表的命令,无法执行,

就又建一个数据库,将全部数据导入,再将存储过程及视图生成sql语句后导入,删除原数据库,将新建的数据库命名为原数据库的名字,程序运行正常,问题解决。

相关文档
最新文档