sql高手帮帮我吧

来源:百度知道 编辑:UC知道 时间:2024/06/22 12:59:07
我定义一个触发器可是根本就不起作用
create trigger trig_trans
on transInfo for insert
as
declare @mytransType char(4),@outMoney money,
@mycardID char(10),@balane int
select @mytransType=transType,@outMoney=transMoney,@mycardID=cardID from inserted
select @balane=balane from cardInfo where cardID=@mycardID
if(@mytransType='支出')
if(@balane<=@outMoney+1)
raiserror('交易失败!余额不足!',16,1,@balane)
else
update cardInfo set balane=balane-@outMoney
where cardID=@mycardID
else
update cardInfo set balane=balane+@outMoney
where cardID=@mycardID
if @@error<>0
begin
print'交易失败!'
rollback transaction
end
else
select @balane=balane from cardInfo where cardID=@mycardID
print'交易成功!交易金额为:'+convert(varchar(20),@outMoney)
print'卡号'+@mycardID+'余额&#

可能的情况就是你在插入数据的时填写的不是“支出”。你看看插入后的cardinfo表中的值是不是增加了。如果是的话,你这么设计不太好,最好把每种类似于“支出”的操作都列出来,针对不同的操作进行不同的表操作。

raiserror('交易失败!余额不足!',16,1,@balane)
没有起作用