wfmufida 发表于 2010-5-31 10:37:37

附加数据库提示823错误

本帖最后由 wfmufida 于 2010-5-31 10:40 编辑

如果商贸通数据库文件损坏或附加数据库时提示823错误时,        sqlserver附加数据库错误823的解决方案一、SQL-Server附加数据库时失败。1、异常情况:服务器在正常运行的情况下突然断电,导致数据库文件损坏,具体表现是:数据库名后面有“(置疑)”字样。2、异常分析:关于823错误的 SQL-SERVER 中的帮助:
解释Microsoft SQL Server 在对某设备进行读或写请求时遇到 I/O 错误。该错误通常表明磁盘问题。但是,错误日志中在错误 823 之前记录的其它核心消息应指出涉及了哪个设备。3、解决办法:在SQL-Server企业管理器中,新建同名数据库(这里假设为Test)后,停止数据库,把损坏的数据库文件Data.mdf和Test_log.LDF覆盖刚才新建数据库目录下的Data.mdf和Test_log.LDF,同时删除Test_log.LDF文件;启动数据库服务,发现数据库名Test后面有“置疑”字样。不要紧,打开SQL自带查询分析器,分别执行如下SQL语句:解释Microsoft SQL Server 在对某设备进行读或写请求时遇到 I/O 错误。该错误通常表明磁盘问题。但是,错误日志中在错误 823 之前记录的其它核心消息应指出涉及了哪个设备。3、解决办法:在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:\数据库的路径\data\Test_Log.LDF') /* 重建LDF文件 */第四、update sysdatabases set status=0 where name='数据库名' /* 重置数据库状态 */第五、restore database 数据库名 WITH RECOVERY /* 恢复数据库 */第六、exec sp_configure 'allow updates',0 RECONFIGURE WITH OVERRIDE /* 关闭打开修改系统表的开关 */按照此方法操作,应该能修复数据库正常访问了。如果问题依然存在,最笨的一个方法就是新建另一个数据库,把原数据库(Test)各个表的数据导出到新建数据库表中。补充说明:用上面的六步把数据库置疑的问题解决了,但是数据库表里还有损坏的表(inf_gdscode),把坏表导出的时候也不成功。最后在查询分析器里运行:对于数据库个别表损坏的情况最好是用数据库修复工具修复下。然后在操作软件的时候有个别表还是有问题,可以对照演示帐套的相应的表进行修改。

sy-ufida 发表于 2010-5-31 10:45:31

顶顶 顶 顶顶 顶 顶顶 顶 顶顶 顶

小小蕙 发表于 2010-6-10 15:38:31

麻烦啊 没看太懂

﹌_离不开 发表于 2011-12-16 11:50:14

:L文化水平 没那么高, 我在消化消化

丶走神 发表于 2015-12-22 12:03:29

研究学习下,虽然看不懂

西安毛神 发表于 2016-2-19 11:54:27

学习学习,虽然不太懂

听雪楼主 发表于 2016-7-16 13:49:43

我是872版本,有一个帐套的2004年度就这样,附加不了,现在导致打开系统管理里面备份帐套无法完成。

jgginfo 发表于 2016-8-29 20:36:38

赚点金币~~

qq8516803 发表于 2022-12-8 17:37:01

谢谢分享
页: [1]
查看完整版本: 附加数据库提示823错误