两个问题一块提:
1、在物品入库时,定入入库单明细item_in_detail,定入有物品库存item_all,dw_mx绑定着item_in_detail表,插入数据后,用触发器自动往库存表中加数量。现在在窗口中(入库单)有个delete按钮,原意是如果录入错误可以通过此进行删除,但是当数据已经update,我只想删除再录入的数据,而不想删除原有保存的数据,该如何进行控制。
2、又有一个入库单修改的窗口,可以修改数量,我想修改完数量后在库存中相应进行数据的增减。
我写了delete触发器,select @itemid=item_id,@ph=ph from deleted,这个语句是不是只能触发临时表中的第一行数据,但为什么insert触发器这样写就没问题?
此问题大侠们有没有更好的解决方法?
这个问题第1个回答:
支持你 学习了
这个问题第2个回答:
if dw.GetItemStatus ( row, 0, Primary! ) =New! or dwcontrol.GetItemStatus ( row, 0, Primary! )=
NewModified! then
dw.DeleteRow(row)
endif
这个问题第3个回答:
风过的~~~~~~~~~~
这个问题第4个回答:
SQL code
create trigger [dbo].[ut_update_itemall]
on [dbo].[item_out_detail]
for update
as
declare @itemid varchar(8),
@itemph varchar(10),
@iteminsertnum int,
@currentitemnum int,
@itemid1 varchar(8),
@itemph1 varchar(10),
@iteminsertnum1 int,
@currentitemnum1 int
select @itemid =item_id,
@itemph = ph,
@iteminsertnum =number
from deleted
select @itemid1 =item_id,
@itemph1 = ph,
@iteminsertnum1 =number
from inserted
select @currentitemnum = count(*) from item_all where item_id=@itemid and ph=@itemph
if @currentitemnum=0
begin
insert into item_all values (@itemid,@itemph,@iteminsertnum-@iteminsertnum1)
end
else
begin
update item_all set number =number+@iteminsertnum-@iteminsertnum1 where item_id=@itemid and ph=@itemph
delete item_in_detail where number=0
end
这个问题第5个回答:
还是delete触发器的问题,后来用这样的语句结果达到要求了。望高手指点一二。
问题一按SummerHeart的方法已解决,谢谢了!!