CREATE TRIGGER tg_upd_of_approve ON [dbo].[of_approve]
FOR UPDATE
AS set nocount on
if update(is_default)
begin
update order_fabric
set
f_id = ins.ofapp_id,
status_id = 34,
approver = ins.approver,
approved_date = ins.approved_date
from order_fabric ofb, inserted ins
where ofb.of_id = ins.of_id
end
修改第一行資料的is_default列以後,觸發器inserted 取到的卻是最後一行的數據,誰能指點我一下嗎?
------解决方案--------------------
既然是更新操作 ,吧 inserted 换成 deleted试试
------解决方案--------------------
檢查代碼中,是否存在修改第一行數據的時候,修改了最後一行數據的操作。
不管修改了前面哪一行數據,update觸發器執行了最後一行修改,將前面觸發器的修改結果覆蓋。
update觸發器從第一行執行到最後一行,每次更新一行,所以select count返回1。