那位帮忙看看这触发器有啥毛病

caoyang0299 2012-05-04 11:15:30
create trigger tri_fenpei on t_BOS200000007entry2 after delete
as
declare @id int
declare @hanghao int
select @id=finteger1,@hanghao=finteger2 from deleted
update t_BOS200000001entry2 set fcombobox=0
where fid=@id and fentryid=@hanghao


现在正常删BOS200000007entry2 这表的数据的时候,没发现问题,

但现在有这样一毛病,BOS200000007entry2 和BOS200000007表是关联的,删BOS200000007表数据的时候程序会自动把BOS200000007entry2 数据也删掉,这时这触发器就有问题了,只能触发1条数据,其他数据都触发不了了,那位大侠指点下,
谢谢!
...全文
137 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
caoyang0299 2012-05-04
  • 打赏
  • 举报
回复
1楼的测试一下,也没发现问题, 哪位能解释下区别,触发器有点晕
caoyang0299 2012-05-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
,如果 在删除 在BOS200000007表数据的时候程序会自动把BOS200000007entry2 数据也删掉(这时 是多条)你的触发器只能 捕获一条数据。 这种情况你需要写 while 或 游标来循环获取所有的被删除的数据,来满足你的 目的
[/Quote]

这个应该怎么写呢?谢谢!
wujianfeng32 2012-05-04
  • 打赏
  • 举报
回复
+1[Quote=引用 2 楼 的回复:]
,如果 在删除 在BOS200000007表数据的时候程序会自动把BOS200000007entry2 数据也删掉(这时 是多条)你的触发器只能 捕获一条数据。 这种情况你需要写 while 或 游标来循环获取所有的被删除的数据,来满足你的 目的
[/Quote]
Felixzhaowenzhong 2012-05-04
  • 打赏
  • 举报
回复
,如果 在删除 在BOS200000007表数据的时候程序会自动把BOS200000007entry2 数据也删掉(这时 是多条)你的触发器只能 捕获一条数据。 这种情况你需要写 while 或 游标来循环获取所有的被删除的数据,来满足你的 目的
  • 打赏
  • 举报
回复


这样应该没问题了
create trigger tri_fenpei on t_BOS200000007entry2 after delete
as


update t_BOS200000001entry2 set fcombobox=0
fromdeleted d where d.fid=t_BOS200000001entry2 .id and d.fentryid=t_BOS200000001entry2 .hanghao

34,590

社区成员

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

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