输入数量行,点保存,更新 变更前数量为1,2,3 (过程就是为了显示上一次原来的数量)
触发器代码:
alter trigger [dbo].[PO_Podetails_silent]
on [dbo].[PO_Podetails]
after update
as
begin
if update(iQuantity)
declare @gxqsl nvarchar(50)
set @gxqsl=(select iQuantity from Deleted )
update PO_Podetails
set cDefine25=@gxqsl
from inserted a join PO_Podetails b on a.cInvCode=b.cInvCode
end
在更新时会前端会返回错误,我觉得是 取值返回了多个值了,但不知道如何解决,望大神指教。
其实首先要弄明白,你想在每次更新的时候是只记录更新那一行之前的数据,还是所有行都update成那个数据。
按我的理解,你是想update哪一行,就记录哪一行变更前的数量吧?
set @gxqsl=(select iQuantity from Deleted ) 这个就是这行变更前的数量,试试把下面的update语句改成
update PO_Podetails
set cDefine25=a.iQuantity
from Deleted a join PO_Podetails b on a.cInvCode=b.cInvCode
如果还不行,把你前面的after 改成for试试。