SQL SERVER TRANSACTION



SQL SERVERTRANSACTION

  1. 开启事务begintransaction transaction_name

标记一个式本地事的起始点BEGINTRANSACTION使 @@TRANCOUNT 1

BEGIN TRANSACTION 一个本地事,但是在用程序接下来行一个必须记录的操作(如 INSERTUPDATE DELETE句)之前,它并不被记录在事日志中用程序能行一些操作,例如了保 SELECT 句的事隔离级别,但是直到用程序行一个修改操作后日志中才有记录

  1. 提交事务committransaction transaction_name

当在嵌套事务中使用时,内部事的提交并不源或使其修改成永久修改只有在提交了外部事务时,数据修改才具有永久性,而且源才会被 @@TRANCOUNT大于 1,每出一个 COMMIT TRANSACTION 命令只会使 @@TRANCOUNT 1 @@TRANCOUNT终递 0,将提交整个外部事

 transaction_name被数据引擎忽略,所以当存在著内部事务时出一个引用外部事名称的 COMMIT TRANSACTION 只会使 @@TRANCOUNT 1

@@TRANCOUNT 0时发 COMMIT TRANSACTION将会致出现错误;因没有相 BEGIN TRANSACTION

不能在发出一个 COMMITTRANSACTION句之后回,因数据修改已数据的一个永久部分

当事务计数在句开始处为 0 ,数据引擎才会增加句内的事务计

  1. 回滚事务rollbacktransaction transaction_name

式事性事到事的起点或事内的某个保存点可以使用 ROLLBACK TRANSACTION清除自事的起点或到某个保存点所做的所有数据修改还释放由事控制的

savepoint_nametransaction_name ROLLBACK TRANSACTION到事的起点。嵌套事务时该语句将所有内到最外面的 BEGIN TRANSACTION 。在两种情况下,ROLLBACK TRANSACTION 都将 @@TRANCOUNT函数减小 0ROLLBACK TRANSACTIONsavepoint_name不减小 @@TRANCOUNT

保存点提供一种机制可以只回滚事务的一部分操作用户可以在一个事务中设置保存点或标记点。保存点定了一个在事的部分操作在某个条件下被取消,事可以回到的位置。SQL Server允许你通SAVE TRAN定保存点,使用SAVETRAN不会影响@@TRANCOUNT的值。同的,回保存点(而不是回)的操作也不会影响@@TRANCOUNT的值。然而,个回操作必须显示的指定个保存点:使用不指定保存点名称的ROLLBACK TRAN是回整个事务。

 

4.事务数目@@TRANCOUNT

返回在当前接上行的 BEGIN TRANSACTION 句的数目

BEGINTRANSACTION句将 @@TRANCOUNT增加 1 ROLLBACKTRANSACTION @@TRANCOUNT减到 0,但 ROLLBACK TRANSACTION savepoint_name除外,它不影响 @@TRANCOUNT COMMIT TRANSACTION COMMIT WORK @@TRANCOUNT 1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值