
SQL触发器插入记录更新另一表
POS收银系统中要求每收一张零售单立刻把该单销售金额转换成积分(每10一分)更新到会员积分表下零售表字段如下零售单据ID会员卡号交易金额会员表字段如下会员卡号会员名称本次...
POS收银系统中要求每收一张零售单立刻把该单销售金额转换成积分(每10一分)更新到会员积分表下
零售表字段如下
零售单据ID 会员卡号 交易金额
会员表字段如下
会员卡号 会员名称 本次积分 累计积分
现如何用SQL触发器实现在前台程序中每收一张单就能更新会员表下的本次积分和累计积分字段?? 展开
零售表字段如下
零售单据ID 会员卡号 交易金额
会员表字段如下
会员卡号 会员名称 本次积分 累计积分
现如何用SQL触发器实现在前台程序中每收一张单就能更新会员表下的本次积分和累计积分字段?? 展开
2个回答
展开全部
create trigger tr_零售表
on 零售表 for insert
as
begin
declare @会员卡号 varchar(30),@交易金额 decimal(18,2)
select @会员卡号=会员卡号,@交易金额=交易金额 from inserted
update 会员表 set 本次积分=本次积分+cast(@交易金额/10 as int),累计积分=累计积分+cast(@交易金额/10 as int) where 会员卡号=@会员卡号
end
还有啊,你给的分有点少啊,呵呵
以上,希望对你有所帮助!
on 零售表 for insert
as
begin
declare @会员卡号 varchar(30),@交易金额 decimal(18,2)
select @会员卡号=会员卡号,@交易金额=交易金额 from inserted
update 会员表 set 本次积分=本次积分+cast(@交易金额/10 as int),累计积分=累计积分+cast(@交易金额/10 as int) where 会员卡号=@会员卡号
end
还有啊,你给的分有点少啊,呵呵
以上,希望对你有所帮助!
展开全部
说明:
1、只标记了
update,没有标记 insert
2、假定
userid, gga,ggb
是 int 类型,你改成相应的类型
create
trigger
triggername
on
abc
after
upate
as
begin
--
declare
@useridnew
int;
declare
@gganew
int;
declare
@ggbnew
int;
--
select
@useridnew
=
userid,
@gganew
=
gga,
@ggbnew
=
ggb
from
inserted;
--
if
update(
gga
)
or
update(
ggb)
begin
insert
into
cba(userid,
gga,ggb,
tiem)
values(
@useridnew,
@gganew,@ggbnew,
getdate()
);
end
end
1、只标记了
update,没有标记 insert
2、假定
userid, gga,ggb
是 int 类型,你改成相应的类型
create
trigger
triggername
on
abc
after
upate
as
begin
--
declare
@useridnew
int;
declare
@gganew
int;
declare
@ggbnew
int;
--
select
@useridnew
=
userid,
@gganew
=
gga,
@ggbnew
=
ggb
from
inserted;
--
if
update(
gga
)
or
update(
ggb)
begin
insert
into
cba(userid,
gga,ggb,
tiem)
values(
@useridnew,
@gganew,@ggbnew,
getdate()
);
end
end
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询