首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > PB >

修改第一行資料的is_default列以後,觸發器inserted 取到的卻是最後一行的數據,誰能指點小弟我一下嗎

2012-03-29 
修改第一行資料的is_default列以後,觸發器inserted 取到的卻是最後一行的數據,誰能指點我一下嗎?CREATE TR

修改第一行資料的is_default列以後,觸發器inserted 取到的卻是最後一行的數據,誰能指點我一下嗎?
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。

热点排行