SQL Server附加数据库失败,823错误。

服务器在正常运行的情况下突然断电,导致数据库文件严重损坏。附加或还原数据库无果,在附加数据库过程中出现823字样的错误。

查阅SQL server 联机丛书中关于823错误的解释:

错误编号 : 823
严重级别 : 24
消息正文 :
在文件 '%ls' 中、偏移量为 %#016I64x 的位置执行 %S_MSG 期间,操作系统已经向 SQL Server 返回了错误 %ls。SQL Server 错误日志和系统事件日志中的其他消息中可能提供了更详细信息。这是一个威胁数据库完整性的严重系统级错误条件,必须立即纠正。请执行完整的数据库一致性检查(DBCC CHECKDB)。

说明 :

Windows 读取或写入请求失败。将 Windows 返回的错误代码和相应的文本插入到消息中。对于读取操作,SQL Server 已经重试读取请求四次。通常是硬件错误导致此错误,但也可能是设备驱动程序导致的。
----------------------------------------------------------------------------------------------------------------------------------------------------------
解决办法:
1. 在企业管理器中,新建同名数据库(data_db);

2. 停止SQL Server服务,将损坏的数据库文件 data_db.mdf 替换掉刚刚新建好的数据库文件,并删除该数据库的日志文件 data_db.mdf _log.ldf;

3. 重新启动SQL Server服务,此时再打开企业管理器,发现该数据库有“置疑”字样;

4. 接下来打开SQL自带查询分析器,执行如下SQL语句:

(1)选择master系统库,打开修改系统表的开关

EXEC sp_configure 'allow updates',1 RECONFIGURE WITH OVERRIDE

(2)选择master系统库,设置数据库状态为紧急修复模式

UPDATE sysdatabases set status=32768 where name='data_db'

(3)选择master系统库,执行重建data_db_log.ldf文件命令

DBCC REBUILD_LOG ('data_db', 'D:\database_fix\data_db_Log.LDF')

(4)选择master系统库,关闭数据库紧急修复模式

UPDATE sysdatabases set status=0 where name='data_db'

(5)选择data_db,执行恢复数据库命令

RESTORE database data_db WITH RECOVERY

(6)选择master系统库,关闭打开修改系统表的开关

EXEC sp_configure 'allow updates',0 RECONFIGURE WITH OVERRIDE

----------------------------------------------------------------------------------------------------------------------------------------------------------
 通过以上六个步骤把数据库恢复后,数据库表里还有损坏的表(tb_damage),将坏表导出或修改的时候可能会无响或者不成功。可以尝试 DBCC CHECKTABLE 命令,例 :

DBCC CHECKTABLE ('tb_damage' , REPAIR_ALLOW_DATA_LOSS)

以上内容谨供本人日后查阅

SQL Server附加数据库失败,823错误。相关推荐

  1. SQL Server附加数据库失败:无法打开物理文件,操作系统错误5:拒绝访问”解决方法

    在Windows2008/Win7以上操作系统附加时,会出现此错误,这是由于Windows的文件访问权限问题引起的,解决方法有两种:     一.设置当前操作系统用户对数据库文件所在的文件夹具有完全控 ...

  2. SQL Server附加数据库错误5123,另一个进程正在调用

    情况一:在使用sql server附加数据库时,出现了 首先,我想讲一个故事:我想拿自己的银行卡,取出父亲银埋在家中30米地下的钱 这两个对象的位置是同一个吗?显然不是 出现此报错的原因是,我在自己的 ...

  3. SQL Server 附加数据库

    SQL Server 附加数据库 本节主要阐述如何向SQL Server 2008 附加已有的数据库文件. 关键词:SQL Server 2008:附加数据库 一 准备文件:复制.MDF与.LDF 二 ...

  4. SQL Server附加数据库(2005)

    SQL Server2005实现附加数据库操作: (1)通过SQL Server2005管理器工具实现. 步骤: 1.登录SQL Server2005管理器工具. 2.分离数据库.在"数据库 ...

  5. 使用SQL Server发布数据库快照遇到错误:对路径”xxxxx“访问被拒绝的解决方法...

    2019独角兽企业重金招聘Python工程师标准>>> 使用SQL Server发布数据库快照的配置中,如果你选择了使用SQL Server代理,而SQL Server代理服务使用的 ...

  6. 在SQL Server 2005数据库中进行错误捕捉

    在SQL Server数据库中,如果执行Transact-SQL时出现了错误,我们可以使用两种捕捉错误的方法解决此问题,一种是在客户端代码(如c#.delphi等)中使用类似try...catch的语 ...

  7. sql server 附加数据库 错误5123 解决办法

    错误实例: 解决办法: 1. 修改权限:  a: 将这个机房收费系统文件夹设置成完全控制:  b: 将文件夹中的charge_sys_data.MDF中的user设置成完全控制(原因是有些电脑出不来u ...

  8. MSSQL - SQL Server2008附加数据库失败 错误号:5120

    附加数据库时,显示错误,错误信息为 一种解决方法为,设置mdf文件所在文件夹的权限(有些资料说只设置mdf文件的权限就好,但我试了不管用),在文件夹上右击--属性--安全,如图所示: 选择组或用户名中 ...

  9. SQL Server2008附加数据库失败

    今天旁晚时分,我准备把老师在上课时候发给我们的一个数据库附加到我的SQL Server2008上面去,本来在学校机房用的SQL Server2000是很顺利地就成功了,但是把*.mdf文件附加到我的0 ...

最新文章

  1. 365Rss.cn Beta 1.0 (内测版本)更新 2007-1-18:速度、人性化、简洁化
  2. TCP/IP网络协议的通俗理解,socket,http,soap。
  3. 5 加盐_小葱拌豆腐的5种做法,收藏起来慢慢学!
  4. 成功解决tensorflow.keras: AttributeError: ‘str‘ object has no attribute ‘decode‘
  5. C语言 回调函数 produce(arr,len,getRand)
  6. etag java_你知道HTTP协议的ETag是干什么的吗?
  7. U盘安装Ubuntu
  8. 使用Expression实现数据的任意字段过滤(1)
  9. Linux C多线程编程
  10. CnOpenData中国海关统计数据
  11. 第5章第24节:如何在幻灯片中播放视频文件 [PowerPoint精美幻灯片实战教程]
  12. 不要在意FIl短期,FIl未来价值可期
  13. MEX and Increments
  14. DLink624+A拨号失败的问题
  15. D3D坐标系统下3D世界坐标映射到2D屏幕坐标的平移矩阵
  16. 【2021版】吐血整理_专升本计算机文化基础—Word2010
  17. 求个人所得税和税后收入
  18. Easy-Pay一行代码解决支付宝微信支付功能
  19. git同步本地与远程代码命令
  20. RDF查询语言SPARQL

热门文章

  1. Matplotlib多子图绘图后保存单个子图
  2. 一起来学ES —— Bulk剖析
  3. windows下对python的pip更新到最新版本
  4. android12.0(S) Launcher3 导入 AndroidStudio 调试编译
  5. 【机器学习之向量求导】分子布局 分母布局
  6. RLC串联电路及其谐振
  7. 人脸皮肤高清xyz贴图库分享
  8. 车载以太网 - SomeIP - 总纲
  9. 十大网页设计者必看的网站
  10. 股票自选股基本函数大全-7