34,576
社区成员
发帖
与我相关
我的任务
分享
CREATE TRIGGER icstockbillentry_001 ON dbo.icstockbillentry
FOR INSERT,Update
AS
Update t1 set t1.fnote=t2.fsupplyidname
from icstockbillentry t1
inner join icstockbill t4 on t4.finterid=t1.finterid and t4.ftrantype=41
inner join (select d.fitemid,max(c.fsupplyidname) as fsupplyidname,max(c.fdate) as fdate from vwicbill_1 c inner join t_icitem d
on d.fnumber=c.ffullnumber group by d.fitemid) t2 on t2.fitemid=t1.fitemid
inner join inserted t3 on t3.fitemid=t1.fitemid
CREATE TRIGGER icstockbillentry_001 ON dbo.icstockbillentry
FOR INSERT,Update
AS
Update t1
set t1.fnote=t2.fsupplyidname
from icstockbillentry t1 inner join icstockbill t4 on t4.finterid=t1.finterid and t4.ftrantype=41
inner join (
select d.fitemid,max(c.fsupplyidname) as fsupplyidname,max(c.fdate) as fdate
from vwicbill_1 c inner join t_icitem d on d.fnumber=c.ffullnumber
group by d.fitemid
) t2 on t2.fitemid=t1.fitemid
inner join inserted t3 on t3.fitemid=t1.fitemid
语句看上去是没什么错误, 但是你要确保几个INNER JOIN 之后, 会不会删选掉必要的值
另外应该不能在自身TABLE上的触发器里面更新自己的TABLE吧,感觉不会死循环了?