达思科技新版产品详情介绍

DST new product details

使用达思SQL数据库修复软件导出数据库时的接收数据的数据库如何清空表数据?

发布时间:2019-05-06    阅读数:


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

清除表数据有两种方法:

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

另一种是truncate table  [表名] ,这种方法速度快,但清除不了具有外键的表数据。

 

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

 

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

 

1、 采用truncate table  [表名] 清除表数据,排除具有外键属性的表,清除语句获取如下:

Use [要操作的库名字]

-----------------------------------------------------------------------

select

   'alter table  [' +name+ '] nocheck constraint all; alter table  [' +name + '] disable trigger all;

truncate table ['+name+'];'

 + ' alter table  [' +name + '] enable trigger all; alter table  [' +name + '] check constraint all;

 go'

 from sysobjects where id not in(select   parent_object_id from sys.foreign_keys ) and id not in(select   referenced_object_id from sys.foreign_keys ) and  type='U'

-----------------------------------------------------------------------

 

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

 

2、用 delete from [表名] 清除表数据语句获取如下

Use [要操作的库名字]

-----------------------------------------------------------------------

SELECT 'alter table  [' +object_name (id) + '] nocheck constraint all; alter table  [' +object_name (id) + '] disable trigger all;

 delete from ['+object_name (id)+'];' + '

 alter table  [' +object_name (id) + '] enable trigger all; alter table  [' +object_name (id) + '] check constraint all;

go'

TableName from sysobjects where   type='U'

-----------------------------------------------------------------------

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

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

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

Use [要操作的库名字]

-----------------------------------------------------------------------

SELECT object_name (i.id) TableName,

   rows as RowCnt

FROM sysindexes i

INNER JOIN sysObjects o

ON (o.id = i.id AND o.xType = 'U ')

WHERE indid < 2 and RowCnt>0

ORDER BY RowCnt desc


  总部:达思凯瑞技术(北京)有限公司

达思数据恢复中心(北京总部):4007000017

地址:中国北京市海淀区林风二路38号院4号楼3层312室(海淀绿地中央广场,北清路与稻香湖路交汇处)

手机导航请搜“达思数据恢复”,跟着导航来达思吧

电话: 010-62672125  62672120   62670165    62672127

达思数据恢复QQ群:120161291   远程支持QQ:151208   

达思软件用户QQ群:327273411(需验证正版信息)

技术:010-62670165 / 数据恢复实验室方案: 13522681842

  达思全国各地服务站:
微信公众号服务号200-200.jpg              

微信服务号


微信公众号订阅号200-200.jpg              

微信订阅号



微信公众号订阅号200-200.jpg              

客户服务

Copyright © 2007 达思凯瑞技术(北京)有限公司  达思科技官网  www.dstfix.com  All rights reserved. ICP备案号:京ICP备09028603号-15

360网站安全检测平台
  • 首页
  • 电话
  • 在线咨询