zoukankan      html  css  js  c++  java
  • T-SQL---事务操作

    使用事务解决银行转账问题

    begin transaction
    /*定义变量,用于累计事务执行过程中的错误*/
    declare @errorsum int 
    set @errorSum=0 --初始化为0,即无错误
    update bank set currentMoney=currentMoney-1000 where customerName='张三'
    set @erroSum=@errorSum+@@error
    update bank set currentMoney=currentMoney+1000 where customerName='李四'
    set @erroSum=@errorSum+@@error
    if @errorSum<>0 --如果有错误
     begin 
      print '交易失败,回滚事物'
      rollback transaction
     end
    else
     begin 
      print '交易成功,提交事务,写入硬盘,永久保存'
      commit transaction
     end
    go
    print '查看转账事务后的余额'
    select * from bank

     事务的ACID特性

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

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

    3、隔离性(Isolation):对数据进行修改的所有并发事务是彼此隔离的,这表明事务必须是独立的,它不应以任何方式依赖或影响其他事务

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

  • 相关阅读:
    PHP 计算程序运行的时间
    PHP 简易版生成随机码
    PHP读取FLASH 文件信息
    MongoDB基本使用
    PHP实现QQ达人信息抓取
    bjtuOJ 1188 素数筛选
    bjtuOJ 1139 Longest Common Subsequence
    BJTU1113扫雷问题
    C#线程池的使用详解
    C#域名解析的简单制作
  • 原文地址:https://www.cnblogs.com/beast-king/p/4522620.html
Copyright © 2011-2022 走看看