zoukankan      html  css  js  c++  java
  • SQL 事务 begin tran、commit tran、rollback tran 的用法

    首先理解一下这三个事务的大概意思:

    begin Transaction 可以理解成新建一个还原点。
    commit Transaction 提交这个自begin tran开始的修改
    rollback Transaction 表示还原到上个还原点。

    今天在更新一个ERP仓库名称的时候导致该界面一直属于Locking 状态,还以为开发商修改了什么东西,原来是自己在执行update的时候导致的,太糊涂了。

    当时update仓库语句是这样写:

    begin tran

    update ,,,,,,,

    执行成功后就没有管了,过一会打开ERP该界面,卡死,无响应,重复登录几次还是一样,这时才想起来刚才执行了update语句,赶紧执行:rollback tran 语句,提示:

    在点击ERP界面正常显示,松了一口气,因为begin tran  时没有跟commit tran 一起执行导致界面locking,但是说来有点怪,我记得以前用SMSS 执行update的时候 也没有加commit tran,为什么在Toad for  SQL srever 执行的时候会发生界面locking呢?检讨中。。。

    --set xact_abort on     整体回滚所有语句

    --set xact_abort off    只回滚出错语句

    begin tran

    update,,,,,

    commit tran

    set xact_abort on 和 rollback Transaction 结果一样,都是回滚所有。

    一般把DML语句(select ,delete,update,insert语句)放在BEGIN TRAN...COMMIT TRAN 之间作为一个事务处理

    也就是那些语句执行过程中如果遇到错误,无论哪句遇到错误,所有语句都会回滚到BEGIN TRAN之前的状态。

  • 相关阅读:
    方向ajax(http long request实现实时通信)
    HTTP防盗链与反防盗链
    linux开启过程详解
    自动化运维工具----saltstack安装及配置
    python----网络编程(TCP通讯)
    windows----bat方式实现ftp推送
    shell----ftp推送
    python----FTP文件拉取(new)
    haproxy----四层负载均衡
    python----时间转换
  • 原文地址:https://www.cnblogs.com/jijm123/p/10524030.html
Copyright © 2011-2022 走看看