zoukankan      html  css  js  c++  java
  • sql 事务

    了解事务和锁

    事务:保持逻辑数据一致性与可恢复性,必不可少的利器。

    :多用户访问同一数据库资源时,对访问的先后次序权限管理的一种机制,没有他事务或许将会一塌糊涂,不能保证数据的安全正确读写。

    死锁:是数据库性能的重量级杀手之一,而死锁却是不同事务之间抢占数据资源造成的。

    一个事务中可以包含多个DML语句,一个DDL语句或者一个DCL语句。

    事务中的语句要么全部执行,要么全部不执行。

    书面解释:事务具有原子性,一致性,隔离性,持久性(ACID)

    • A 原子性:事务必须是一个自动工作的单元,要么全部执行,要么全部不执行。
    • C 一致性:事务把数据库从一个一致状态带入到另一个一致状态,事务结束的时候,所有的内部数据都是正确的。
    • I 隔离性:并发多个事务时,一个事务的执行不受其他事务的影响。
    • D 持久性:事务提交之后,数据是永久性的,不可再回滚,不受关机等事件的影响。

    事务在如下情况终止:

    1. 遇到rollback commit命令
    2. 遇到DDL或者DCL语句.
    3. 系统发生错误,崩溃或者退出。

    然而在SQL Server中事务被分为3类常见的事务:

    • 自动提交事务:是SQL Server默认的一种事务模式,每条Sql语句都被看成一个事务进行处理,你应该没有见过,一条Update 修改2个字段的语句,只修该了1个字段而另外一个字段没有修改。。
    • 显式事务:T-sql标明,由Begin Transaction开启事务开始,由Commit Transaction 提交事务、Rollback Transaction 回滚事务结束。
    • 隐式事务:使用Set IMPLICIT_TRANSACTIONS ON 将将隐式事务模式打开,不用Begin Transaction开启事务,当一个事务结束,这个模式会自动启用下一个事务,只用Commit Transaction 提交事务、Rollback Transaction 回滚事务即可

    显式事务的应用

    常用语句就四个。

    • Begin Transaction:标记事务开始。
    • Commit Transaction:事务已经成功执行,数据已经处理妥当。
    • Rollback Transaction:数据处理过程中出错,回滚到没有处理之前的数据状态,或回滚到事务内部的保存点。
    • Save Transaction:事务内部设置的保存点,就是事务可以不全部回滚,只回滚到这里,保证事务内部不出错的前提下。
  • 相关阅读:
    字符编码之间的转换 utf-8 , gbk等,(解决中文字符串乱码)
    信号分帧的三种实现方法及时间效率对比
    倒谱Cepstrum本质的理解
    Matlab 中 arburg 函数的理解与实际使用方法
    包络提取的两种方法-希尔伯特变换 和 局部峰值检测
    卡尔曼滤波的自我理解
    随机生成一个长度为n的数组
    JS 数字取整等操作
    vue 跳转路由新开页
    el-form 相关自定义校验
  • 原文地址:https://www.cnblogs.com/zhilu/p/15776451.html
Copyright © 2011-2022 走看看