触发器加事物

create trigger tri_Card
on UserCardInfo
for insert
as
begin
declare @No varchar(50)
declare @Name varchar(50)
declare @Money varchar(50)

select @No=CardNo,@Name=Name ,@Money = CardMoney from inserted

insert into CardOperation values (@No,@Name,@Money,'开户')
end


insert into UserCardInfo values ('62226543498395345','张三','110000')

select * from UserCardInfo

select * from CardOperation

create trigger tri_update
on UserCardInfo
for update
as
begin
declare @ALLMoney int
declare @OutMoney int
select @ALLMoney = CardMoney from UserCardInfo

declare @No varchar(50)
declare @Name varchar(50)
declare @Money varchar(50)

begin try
begin transaction

if @OutMoney<=@ALLMoney
begin
update UserCardInfo set CardMoney = CardMoney - @OutMoney

select @No=CardNo,@Name=Name ,@Money = CardMoney from inserted

insert into CardOperation values (@No,@Name,@Money,'取款')
end
commit transaction

end try
begin catch
rollback transaction
end catch

end

原文地址:https://www.cnblogs.com/w-pengchao/p/7878800.html