很急,求帮助。sql serve 触发器问题
create trigger t //当客户受理表中插入一行数据后,将这行数据中的新业务费用
on 客户受理表 //与话费信息表中的新业务费相加的
和赋给新业务费
after insert //最后将话费信息表中的童话费与新业务费相加的和赋给费用合计。
as begin
declare @id char(11), @money money;
select @id = 手机号码, @money = 新业务费用 from inserted;
update 话费信息表 set 新业务费 = 新业务费 + @money where 手机号码 = @id;
update 话费信息表 set 费用合计 = 新业务费 + 通话费;
end
create trigger t1 //当话费信息表中的费用合计发送更新后,将更新后的费用合计赋给
on 话费信息表 //交费表中的应交费用,
after update
as begin
declare @name varchar(11), @c money;
select @name = 手机号码, @c = 费用合计 from inserted
update 交费表 set 应交费用 = @c where 手机号码 = @name;
end
问题是:当我再在客户受理表插入数据是, 交费表中的应交费用显示的是上一次插入数据时的费用合计,
该怎样修改呢?
------解决方案-------------------- 楼主测测看是否正确
create trigger t //当客户受理表中插入一行数据后,将这行数据中的新业务费用
on 客户受理表 //与话费信息表中的新业务费相加的和赋给新业务费
after insert //最后将话费信息表中的童话费与新业务费相加的和赋给费用合计。
as begin
update a
set 新业务费=a.新业务费+i.新业务费用,费用合计=a.新业务费+i.新业务费用+a.通话费
from inserted as i
inner join 话费信息表 as a on i.手机号码=a.手机号码
end
create trigger t1 //当话费信息表中的费用合计发送更新后,将更新后的费用合计赋给
on 话费信息表 //交费表中的应交费用,
after update
as begin
update a
set 应交费用=d.应交费用
from 交费表 as a
inner join deleted as d on d.手机号码=a.手机号码
end
------解决方案--------------------