问题说明:
此方法适用于索引坏、DBCC、数据库置疑常规方式不能修复的数据库!如果数据库损坏彻底,不能保证百分百修复。
注:在进行此操作前,务必请先备份好对应数据库(备份.mdf和.ldf文件)。
解决方法:
步骤1:首先在D盘建立一个文件夹,命名为TESTDB。
步骤2:在查询分析器中选择对应软件数据库,运行以下语句。
注:语句中需填写实际的问题数据库名称、服务器ip或名称、sa密码。
select 'bcp 问题数据库..'+name + ' out '+'d:\testdb\'+name+'.txt -c -Usa -S服务器ip或名称 -Psa密码' FROM SYSOBJECTS WHERE TYPE = 'U'
ORDER BY NAME
步骤3:把查询的结果集全部复制下来,新建一个文本文件取名为“导出.bat”,把结果集复制进去并保存,把该文件存放在D盘目录下。
步骤4:在查询分析器中选择对应软件数据库,运行以下语句。
select 'bcp 问题数据库..'+name + ' IN '+'d:\testdb\'+name+'.txt -c -Usa -S服务器名小写 -Psa密码' FROM SYSOBJECTS WHERE TYPE = 'U'
ORDER BY NAME
步骤6:把查询的结果集全部复制下来,新建一个文本文件取名为“导入.bat”,把结果集复制进去并保存,把该文件存放在d盘目录下。
步骤7:运行“导出.bat”(注意:该文件双击即可运行),数据库中的数据会倒出到TESTDB目录中。
步骤8:在SQL数据库中删除原来的问题数据库,重新建立一个新的对应数据库(比如商云X,用hbposv10_server安装一个空库即可)。
步骤9:在查询分析器中选择对应软件数据库,运行以下语句,把执行语句后返回的结果进行复制。
select 'delete '+name FROM SYSOBJECTS WHERE TYPE = 'U'
步骤10:新建一个查询分析器窗口,把复制的内容粘贴后执行(此语句为删除所有表数据)。
步骤11:最后运行D盘的“导入.bat” ,倒入成功后就恢复数据库了!
步骤12:最后在查询分析器中选择思迅数据库运行
use hbposv10
go
update t_sys_system set sys_var_value=(select max(flow_id) from t_im_flow where num2=1) where sys_var_id='ioflow_pointer'
go
步骤13:可在软件中进行日结,检查数据是否完整。