怎么写两个表的删除语句啊,在线等!!

hanjiting 2003-09-21 04:50:36
我建了两个表,一个是rl_bm表 有两个字段 bmh(主键)bmmc
另一个是rl_ks表 有三个字段 bmh (是外键)ksh (是主键) ksmc
我要删除rl_bm表中的数据,如果rl_ks表的外键和rl_bm表中要删除的主键相同的时候一起都删除,这个DELETE语句怎么写啊
...全文
51 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
hanjiting 2003-09-22
  • 打赏
  • 举报
回复
谢谢大家我正在尝试每位提供的方法呢,努力学习,再次感谢
mysummer2003 2003-09-22
  • 打赏
  • 举报
回复
我认为应该使用级联删除.
hohololo 2003-09-22
  • 打赏
  • 举报
回复
定义外键的时候设置级联删除
benxie 2003-09-21
  • 打赏
  • 举报
回复
gzing
welyngj 2003-09-21
  • 打赏
  • 举报
回复
先创建触发器
create trigger tri_del
on rl_bm
for delete
as
begin
delete rl_ks
where rl_ks.bmh=deleted.bmh
end

然后删除r1_bm中的记录。
我觉得rl_ks表的外键和rl_bm表一定相同。另外我认为应该使用级联删除更好。
老码猿 2003-09-21
  • 打赏
  • 举报
回复


CREATE TRIGGER double_delete
ON rl_bm
FOR DELETE
AS
BEGIN

delete rl_ks
where bmh in
(select b.bmh
from deleted b)
END
GO

伍子V5 2003-09-21
  • 打赏
  • 举报
回复
alter table rl_ks add constraint fk_rl_ks foreign key(bmh) references rl_bm(bmh)
on delete cascade
go

伍子V5 2003-09-21
  • 打赏
  • 举报
回复
定义外键的时候设置级联删除

可以用企业管理器,也可以用SQL 代码
viptiger 2003-09-21
  • 打赏
  • 举报
回复
--Step 1
DELETE FROM r1_ks
WHERE bmh IN
(SELECT bmh
FROM r1_bm)

--Step 2
DELETE r1_bm
klbt 2003-09-21
  • 打赏
  • 举报
回复
可以用触发器。

34,874

社区成员

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

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