触发器的问题。
我做了个基于insert的触发器在采购收货单的明细表中,当在采购收货单的明细表中插入记录,那么就要在相关的采购订单的明细表的收货数量=收货数量+采购收货单的明细数量。可是每次插入多条记录时,加到采购订单的收货数量是采购收货数量从总和。本来影响的记录数是1,可是这里返回的@@rowcount确等于插入记录的总数。下面是我的代码,大家帮忙分析下:
/*
***************************************************************
采购收货单明细表(oc_stockitm) 2003-11-25
****************************************************************
*/--drop procedure pd_main
create trigger ta_i_stock_itm on oc_stockitm
for insert
as
set nocount on
declare @order_id varchar(50) --订单号
declare @mate_id varchar(50) --货品编号
declare @stock_id varchar(50) --收货单号
declare @amount numeric(20,3) --收货数量
select @mate_id=mateid_vch ,@stock_id=stocid_vch,@amount=amount_num from inserted --取得货品编号
print @amount
select @order_id=ordeid_vch from oc_stock where stocid_vch=@stock_id
update oc_orderitm set getAmnt_num=getAmnt_num+@amount where ordeid_vch=@order_id --更新订单明细表
if not exists(select * from oc_orderitm where getAmnt_num<>amount_num and ordeid_vch=@order_id) --更新订单状态
update oc_order set ordestat_vch='结清' where ordeid_vch=@order_id
set nocount off
go