删除触发器

chenwei9120 2010-03-16 12:07:05
假设有a,b两个表,
a 表字段 aid bid
b表字段 bid
删除a表中一条记录时,执行一个触发器,能实现以下两个功能
1 a.bid在b表中是否存在,如果存在则删除。那么如何获取a表当前选中行的bid.
2 如果删除a表中多行数据,同时能够删除b表中对应的数据。
...全文
61 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sql_sf 2010-03-16
  • 打赏
  • 举报
回复
那么如何获取a表当前选中行的bid.
获取这个BID?
-
-2005
delete from a output deleted.BID
sql_sf 2010-03-16
  • 打赏
  • 举报
回复
--2
create trigger triname on a
for delete
as
delete b
from deleted a,b b
where a.bid=b.bid
东那个升 2010-03-16
  • 打赏
  • 举报
回复
create table a(aid int,bid int)
create table b(bid int)

insert a select 1,1
insert a select 1,2
insert a select 1,3

insert b select 1
insert b select 2

create trigger t_test on a
for delete
as
delete b from deleted a,b b where a.bid=b.bid


delete from a where bid in(2,3)

select * from b
bid
-----------
1

(1 行受影响)
Leshami 2010-03-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sql_sf 的回复:]
那么如何获取a表当前选中行的bid.
获取这个BID?
-

SQL code
-2005
delete from a output deleted.BID
[/Quote]
可以使用OUPPUT来输出被删除的ID号。
SQL 2000不支持

34,588

社区成员

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

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