SQL SERVER 操作---事务

一.事务的特性:

1.原子性(Atomicity):事务是一个完整的操作,事务的各步操作是不可分的(原子的),要么都执行,要么都不执行

2.一致性(Consistency):当事务完成时,数据必须处于一致状态

3.隔离性(Isolation)事务与事务之间独立:并发事务之前彼此隔离,独立,它不应以任何方式依赖于或者影响其他事务

4.永久性(Durability):事务完成后,它对数据库的修改被永久保持

二.事务分类:

第一种:自动提交事务

例:

--银行转账回滚(取消)
declare @money money=200
--两个执行语句不是一个整体
--事务
--添加、删除、修改(默认本来就是事务)
--第一种:自动提交事务
update bank
set currentMoney=currentMoney-@money
where customerName='张三'
--执行、持久化(永久的保存了数据)
commit   --提交
rollback --回滚
update bank
set currentMoney=currentMoney+@money
where customerName='李四'

第二种:隐式事务

set implicit_transactions on --on开启事务 off关闭事务
update bank
set currentMoney=currentMoney-200
where customerName='张三'

select * from bank --查询不会影响任何数据
rollback           --回滚(取消)
commit             --提交(持久化,永久保存了数据)

第三种:显示事务(存储过程)

begin transaction --开启事务
-------------------自定义变量系统(全局)变量@@error
     declare @errorNum int=0
     declare @money money=500
     update bank
     set currentMoney=currentMoney-@money
     where customerNmae='张三'
     set @errorNum=@errorNum+@@error ---记录是否报错

     update bank
     set currentMoney=currentMoney+@money
     where customerNmae='张四'
     set @errorNum=@errorNum+@@error ---记录是否报错

    if @errorNum=0 ---没有报错才会提交
        begin
            commit transaction --提交事务
            print '数据提交了'
        end
     else
        begin
            rollback transaction --事务回滚
            print '数据回滚了'
        end

使用SQL语句管理事务

开始事务

BEGIN TRANSACTION

提交事务

COMMIT TRANSACTION

回滚(撤销)事务

ROLLBACK TRANSACTION

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值