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

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



...全文
55 1 点赞 打赏 收藏 举报
写回复
1 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
  • 打赏
  • 举报
回复
相关推荐
发帖
MS-SQL Server
加入

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2004-04-29 05:56
社区公告
暂无公告