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

ROBOT 2001-08-09 09:29:27
现有一个数据库,里面有400多个关系复杂的表,其中包括业务表和基础数据表。每个表中有着或多或少的数据(从0--1,000,000条记录)。
现在要求保留部分基础数据表中的数据(有108个表),清空其他所有表中的所有数据。
...全文
221 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
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清空吧

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧