• 全部
  • 基础类
  • 应用实例
  • 新技术前沿

如何清除一个数据库中指定表的数据?急!急!急!急!急!急!

ROBOT 2001-08-09 09:29:27
现有一个数据库,里面有400多个关系复杂的表,其中包括业务表和基础数据表。每个表中有着或多或少的数据(从0--1,000,000条记录)。
现在要求保留部分基础数据表中的数据(有108个表),清空其他所有表中的所有数据。
...全文
167 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
guo 2001-08-10
请说出你使用的数据库类型,我可以给你具体的操作脚本
回复
hailong525 2001-08-10
如果你对各个表之间的关系特别清除的话,倒是可以便写一个delete语句的脚本,先按一定规则(保留一条纪录)删除所有从表的内容,在删除主表的内容!
否则,可以把数据导出,生成各个表的脚本文件,重新建立一套表,也可以再建立一个库,保持两个库同时运行,在其中一个库中建立dblink连接另外一个库中!
剩下的工作,就得一个一个来了!
回复
peter_xiong 2001-08-10
用truncate table 表名就可以了
回复
clacklin 2001-08-10
呵,好象表之间的关联关系是放在系统表里的,你可以先找出所以有关联关系的表,然后删除数据时如果该表有从表,就先删除从表;也可以设置cascade delete,这样就会自动把从表的数据也删掉了。最好用存储过程完成。
回复
qianby 2001-08-10
同意老吴子的观点
回复
l_agang 2001-08-10
用第三方工具,PB就可以的。先查看表之间的关系,然后按顺序删除。
回复
zhuzhichao 2001-08-10
把需要清空数据的表Create的Script倒出來.
然後把表drop掉.再執行Script不就OK了嗎.
回复
老吴子 2001-08-09
如果你有太多的参照一致性约束,则恐怕要用CASE工具的逆向工程找出这些关系,并调整truncate table的顺序,即先删除从表的内容;利用trancate table主要是为避免过多的写日志和触发触发器。如果需要保留某些部分,则看来要用delete了,如果表不多,而仅需要保留一行,不妨先记录下来,再增加。
回复
ROBOT 2001-08-09
附:
对于有单主键的表需要保留一条 ID=-1 的记录。

to zdgdh:
表如果存在外键关系,Truncate table也不可用!
回复
老吴子 2001-08-09
利用truncate table清空吧
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2001-08-09 09:29
社区公告
暂无公告