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之前的状态。

  • 2
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"SQL Server中的BEGIN TRAN是一个事务控制语句,它用于开始一个事务事务是一组SQL语句的逻辑单元,被作为一个整体进行提交或回滚。BEGIN TRAN命令指示SQL Server开始一个事务,并在后续的SQL语句中标识这个事务。 当我们在数据库中执行一系列操作时(例如插入、更新和删除数据),我们可能需要确保这些操作要么都执行成功,要么都不执行。这就是事务的用途之一。事务在以下情况下非常有用: - 当所执行的操作是相关联的,一个操作的成功与否可能会影响到其他操作。 - 当需要确保一组操作要么全部成功,要么全部失败,以维护数据的一致性。 BEGIN TRAN语句用于显式地开始一个事务。在BEGIN TRAN之后的SQL语句将被视为一个事务的一部分。在BEGIN TRANCOMMITROLLBACK之间的SQL语句将作为一个原子操作执行。如果在事务开始之后的任何地方发生了错误,我们可以使用ROLLBACK命令回滚事务,撤销之前的所有操作。如果我们希望提交事务,即使发生错误,我们可以使用COMMIT命令。 事务的使用可以保证数据的完整性和一致性。它提供了一种机制来管理数据库操作的执行顺序和结果,使得数据库的操作更加可靠和可靠。 总结一下,BEGIN TRANSQL Server中是一个开始事务的命令,它用于将一组相关的SQL语句包装在一个事务中。这样可以确保一组操作的一致性和完整性,并提供了回滚或提交事务的机制,以满足数据库操作的要求。"

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值