一个带更新触发器表为啥不能批量更新,我应该怎么做?

13501384036 2004-04-29 05:56:19
我有一个
主表A:
ID FLAG
----------------
1 0
2 0
3 0

副表B:
ID Flag
--------------
1 0
2 0
3 0

在主表上有一个触发如下:

CREATE TRIGGER TR_Update_A ON dbo.A
FOR update
AS
declare @a int
declare @b int
set @a = (select Flag from inserted)
set @b = (select id from inserted)
if @a = 9
begin
update JFInfoTab set Flag = 1 where ID = @b
end


问题:
当我在用这样的SQL语句更新主表时,发生错误,请问为啥?在不改变SQL语句的情况下该如何解决?
Update A set Flag = 1 where Flag = 0



...全文
85 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 元老 2004-04-29
  • 打赏
  • 举报
回复

CREATE TRIGGER TR_Update_A ON dbo.A
FOR update
AS
/*
declare @a int
declare @b int
set @a = (select Flag from inserted)
set @b = (select id from inserted)
if @a = 9
begin
update JFInfoTab set Flag = 1 where ID = @b
end
*/
if update(flag)
update JFInfoTab set flag=1
from JFInfoTab a join inserted b on a.id=b.id

34,576

社区成员

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

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