事务处理——(删除表、转账功能)



--事务处理

declare @err int --声明
set @err = 0--赋值
begin transaction--开启事物
--删除图书
delete from Book where CategoryId = 3
set @err += @@ERROR
--删除类别
delete from Category where Id = 3
set @err = @@ERROR

if @err = 0
 commit transaction--提交事物
else
 rollback transaction--回滚事物
 
select * from Book where CategoryId = 3
select * from Category where Id = 3



--业务处理

--创建卡号
--create table Balance
--(
-- id int primary key identity(1,1),
-- Money decimal(18,2)
--)
--go

--insert into Balance values(1000)
--insert into Balance values(1000)
--go

--select * from Balance


declare @fromId int--转出账号
declare @toId int--转入账号
declare @money decimal(18,2)--转账金额
declare @temp decimal(18,2)--转出账号的余额
declare @err int--错误编号

set @err = 0--初始化错误编号
set @money = 600--初始化转账金额
set @fromId = 1
set @toId = 2

begin transaction--开启事物

update Balance set Money=Money - @money where
id=@fromId--从转出账号中将金额扣除
set @err += @@ERROR--判断修改是否出现错误
--获取转出账号现有余额
select @temp = Money from Balance where id = @fromId

set @err += @@ERROR--判断修改数否出现错误
if @temp < 0
begin
 set @err = 1
end

update Balance set Money = Money + @money where
id = @toId--将金额加入转入账号
set @err += @@ERROR--判断修改数否出现错误
if @err = 0
 commit transaction
else
 rollback transaction
select * from Balance

--update Balance set Money = 1000

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值