使用达思SQL数据库修复软件导出数据库时的接收数据的数据库如

  

清空表数据,保留视图,存储过程,函数,以及保留表约束,触发器等等,可以给故障数据库预留一个好的躯壳,把坏库数据导入此躯壳。对用友,金蝶等数据库恢复有时候能达到好的效果。

  

清除表数据有两种方法:

  从[

一种用删除表名),这种方法对于大数据库,速度慢,会产生很大的日志信息,对于小库,速度可以忽略;

  

另一种是截断表(表名),这种方法速度快,但清除不了具有外键的表数据。

  

在清除表数据时,可以采用两种方法结合。

  

清除表数据时先禁用一切约束,清除完成以后再次启用约束就行了。

  

1,采用截断表(表名]清除表数据,排除具有外键属性的表,清除语句获取如下:

  

使用[要操作的库名字)

  <人力资源/>   

选择   

“alter table(' +名字+ ']nocheck约束;alter table(' +名字+ ']禁用触发器;

  

截断表(' +名字+ ');“

  
      <李>   

    “alter table(' +名字+ ']使触发;alter table(' +名字+ ']检查约束;

      

    去'   

    从sysobjects id不是(从系统选择parent_object_id。foreign_keys)和id而不是(从系统选择referenced_object_id。foreign_keys)和type=' U '

      李   
  <人力资源/>   

上述SQL语句得到的结果,再次在SQL查询分析器里运行。

  

2,用删除从表名)清除表数据语句获取如下

  

使用[要操作的库名字)

  <人力资源/>   

选择“alter table (' + object_name (id) + '] nocheck约束;alter table (' + object_name (id) + ')禁用触发器;

  

删除(' + object_name (id) + ');“+”

  

alter table (' + object_name (id) + ']使触发;alter table (' + object_name (id) + ')检查约束;

  

去'   

表名从sysobjects type=' U '

  <人力资源/>   

3,有些MS SQL Server查询分析器,对于上述语句后面的,复制出来后不自动换行,可以把运行结果保存到文本文件中,查询分析器打开以后,会自动换行。如果不自动换行,SQL语句执行报错。

  

4,可能遇到清除不了的某些表,查看它和哪些表关联外键,先把两个表的约束同时禁用,再用删除(表名),完了以后,两个表同时恢复约束使用。

  

5,查看清除数据是否成功彻底,用下述语句查看记录数量:

  

使用[要操作的库名字)

  <人力资源/>   

选择object_name (i.id),

  

行作为RowCnt   我从sysindexes

  

内连接sysObjects o

  

(o。id=我。id和o。xType=' U ')

  

indid & lt;2、RowCnt> 0

  

命令RowCnt desc

使用达思SQL数据库修复软件导出数据库时的接收数据的数据库如