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中?

...全文
102 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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

22,300

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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