Sql事务

什么是事务?

事务就是一个绑定在一起逻辑单元的Sq语句操作,由4个属性组成简称ACID原子性、一致性、隔离性和持久性),如果任何一个语句操作失败,那么整个操作就会失败,并且回滚到操作前的状态。

原子性
在修改数据时,要么全部执行,要么全部不执行

一致性
事务在完成操作状态时,必须所有数据都是相同状态。事务结束时所有内部数据结构必须全部是正确的状态。

隔离性
在执行当前事务的修改操作时,必须与其他任何事务的修改操作隔离

持久性
事务完成操作之后,对数据的影响是永久性的

为什么使用事务

事务是帮助数据库维护数据的一致性,对数据的影响是永久性和保持一致性的。

事务的运用

在数据库中创建一个名为countt的表
在这里插入图片描述
定义一个变量,记录错误数

declare @error_nums int 
set @error_nums=0

使用事务`

--有转账功能为例使用事务
--ID为1的向ID为2的转账10元
--开始事务
begin transaction tran_change
begin try
update countt set Remain=Remain-10 where id=1
--@@ERROR当执行成功时返回0,执行错误时返回错误号
set @error_nums=@error_nums+@@ERROR 
update countt set Remain=Remain+10 where id=2
set @error_nums=@error_nums+@@ERROR
end try
begin catch
set @error_nums=@error_nums+1
print '错误异常:'+error_number()+',错误消息'+error_message()
end catch
if(@error_nums>0)--表示前面有错误
--rollback回滚
rollback transaction tran_change
else
--commit执行事务
commit transaction tran_change

在这里插入图片描述
ID为1的向ID为2的转账10元
在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值