大家好。我用触发器使当前表插入数据时自动在交易表里增加一条记录。但需要取当前表的ID。是否在触发器中可以得到?代码如下/*代购的插入操作后触发器增加交易记录,类型是代购*/
if object_id('tr_AddNewTransForBetAdd','tr') is not null
drop trigger tr_AddNewTransForBetAdd
gocreate trigger tr_AddNewTransForBetAdd
on bettingrecord after insert
as--用户ID
declare @UserID int
--投注ID
declare @BetID int
--交易的金额
declare @TrMoney money
--代购订单的彩种ID
declare @CPCateID int
--代购的具体玩法名称
declare @CPPlayName varchar(50)select @UserID=u_id,@BetID=bet_id,@TrMoney=bet_tmoney,@CPCateID=bet_cpid,@CPPlayName=bet_playname from inserted
--增加代购的交易记录
insert into transrecord(rc_uid,rc_betid,rc_type,rc_money,rc_status,rc_operate)
select @UserID,@BetID,'代购',@TrMoney,'成功','-' from transrecord--增加返点的记录,返点的是未处理的。只有当开奖时间后返点
--返点的金额=投注金额X返点百分比
declare @FdMoney money
--返点的百分比,如12%.在此显示为小数如 0.12
declare @Rebate float
--注意。ms_rebate格式一定要是89%。即最后一个是% --select convert(float,substring('12%',1,len('12%')-1))/100.0
select @Rebate=convert(float,substring(ms_rebate,1,len(ms_rebate)-1))/100.0 from mysetting where ms_cpcateid=@CPCateID and ms_cpplayname=@CPPlayName
set @FdMoney=@TrMoney*@Rebate
insert into transrecord(rc_uid,rc_betid,rc_type,rc_money,rc_status,rc_operate)
select @UserID,@BetID,'返点',@FdMoney,'处理中','+' from transrecord