表里创建有外键,现想删掉某些表的大部分数据,怎么做比较好?

chongworm 2003-11-17 12:23:57
一个数据库有几百个表,有很多表相互之间是通过外键关联的,现在因为有些表的数据量很大,所以想把这些表中的大部分数据清掉,只留少数几条记录作样板,但是如果采用一个表一个表清除的方法,若某个表和其他表有外键联系,则系统会弹出提示,并且不让删。请问有什么方法能达到目的?请各位高手详细指点,先谢了!
...全文
24 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lynx1111 2003-11-17
  • 打赏
  • 举报
回复
设置级联删除
sunshareforever 2003-11-17
  • 打赏
  • 举报
回复
可以采用触发器完成。
lvltt 2003-11-17
  • 打赏
  • 举报
回复
设置级联删除,具体看联机帮助
shuiniu 2003-11-17
  • 打赏
  • 举报
回复
表已经建好的,可用下面的增加!

alter table 从表 add constraint 外键名 foreign key(从表字段)
references 主表(主表字段) on delete cascade
shuiniu 2003-11-17
  • 打赏
  • 举报
回复
--例如
create table zb --主表
(
zb_id int primary key,
)

go

create table cb --从表
(
mx_id int primary key
FOREIGN KEY REFERENCES zb(zb_id)ON DELETE CASCADE , --指定级联删除
)
go

--主表数据
insert zb values(1)
insert zb values(2)
insert zb values(3)
--从表数据
insert cb values(1)
insert cb values(2)
insert cb values(3)


select * from zb
select * from cb
zb_id
-----------
1
2
3

(所影响的行数为 3 行)

mx_id
-----------
1
2
3

(所影响的行数为 3 行)
--级联删除
delete from zb where zb_id = 1
select * from zb
select * from cb
zb_id
-----------
2
3

(所影响的行数为 2 行)

mx_id
-----------
2
3
(所影响的行数为 2 行)

34,623

社区成员

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

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