UPDATE触发器问题

fs_hzj 2006-03-01 03:48:57
在A表上写一UPDATE触发器,当更新多行时,不能正确将结果INSERT到B表

触发器如下:
CREATE TRIGGER [MatInit_upStock] ON dbo.iMatInitD
FOR UPDATE
AS

select @cMatCode=MatCode , @cMatColor=ColorCode ,@nDigit=basedigit
from inserted

insert into B (f1 , f2 ,f3 )
values (@cMatCode ,@cMatColor ,@ndigit)


结果,当多行更新时,只将最后一行INSERT到B中,如何将批量更新的多行INSERT到B中?

...全文
81 3 点赞 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
fs_hzj 2006-03-01
当批量更新A时,我要根据INSERTED更新B表的行时,这样写不正确,该怎样处理呢?

update imatstorage2 set totalstock=totalstock+(select basedigit from inserted) where matbatchcode=
(select RTRIM(inserted.MatCode)+'_'+rtrim(inserted.ColorCode)+rtrim(inserted.brandName)+'_'+rtrim(inserted.PackageName)+'_'+rtrim(inserted.size2) from inserted)



  • 打赏
  • 举报
回复
selectplayer 2006-03-01
CREATE TRIGGER [MatInit_upStock] ON dbo.iMatInitD
FOR UPDATE
AS
insert into B (f1 , f2 ,f3 )
select MatCode,ColorCode ,basedigit
from inserted
  • 打赏
  • 举报
回复
zbxubing 2006-03-01
inserted本身就是表
可以
insert into B (f1 , f2 ,f3 )
select MatCode , ColorCode ,basedigit
from inserted
  • 打赏
  • 举报
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2006-03-01 03:48
社区公告
暂无公告