ALTER trigger [dbo].[Dosage] on [dbo].[WaterCustomer]
for update,insert,delete
as
begin
declare @bef float
declare @aft float
declare @amount float
select @bef=LastAmount,@aft=ThisTimeAmount,@amount=UsedAmount from WaterCustomer
if @amount=null
update WaterCustomer set UsedAmount=@aft-@bef where @amount=null
end
我要判断表WaterCustomer中UsedAmount是否为空,若是则使UsedAmount=ThisTimeAmount-LastAmount,但是我的触发器不起作用,我向表中插入新数据后,UsedAmount值还是为空
sql触发器不起作用
答案:3 悬赏:0 手机版
解决时间 2021-02-11 03:04
- 提问者网友:雪舞兮
- 2021-02-10 02:44
最佳答案
- 五星知识达人网友:行路难
- 2021-02-10 03:18
触发器能应该正常被触发. 问题在于你的条件if @amount = null, 这个表达式的结果永远都是false, 故你的update语句不会被执行. 要改成if @amount is null.
全部回答
- 1楼网友:往事埋风中
- 2021-02-10 05:13
select @t1=Not_Withdraw_Total from tbUserInfo
看看你这个@t1的具体值,应该是最后一条记录的值
这个值是否大于等于插入记录的Price*Rest_Num
求采纳为满意回答。
- 2楼网友:独钓一江月
- 2021-02-10 03:43
sql 触发器不起作用
触发器能应该正常被触发. 问题在于你的条件if @amount = null, 这个表达式的结果永远都是false, 故你的update语句不会被执行. 要改成if @amount is null.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯