码迷,mamicode.com
首页 > 数据库 > 详细

TSql Transaction

时间:2015-05-20 12:55:25      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:

1,Begin transaction 开启一个事务,@@trancount 增加,可以为开启的事务命名

begin transaction tranname,这样rollback transaction 的时候,就可以选择性的回滚事务,而不是回滚到最外层事务。

多个tranname可以相同,但是在rollback transaction tranname时,会回滚到最外层的tranname,导致@@trancount减少多个。

 

2,Save transaction 不会开启一个事务,只是在事务内增加一个SavePoint,@@trancount不变。

save transaction savepointname 是必须的,多个savepoint的name可以是相同的,在rollback transaction savepointname的时候,只回滚到最内层的上一个savepoint。

 

3,rollback transaction 回滚事务或SavePoint

rollback transaction 将整个事务回滚,@@trancount减少到0

rollback transaction savepoint,只是在一个事务内,回滚到上一个SavePoint,而不是回滚整个事务,@@trancount不变

rollback transaction tranname,是回滚到tranname标识的最外层事务,@@trancount 减1或多个。

 

select * from [dbo].[test]

print @@trancount

begin tran tx
begin tran tx

update dbo.test set id=4

save tran tx
update dbo.test set id=2

save tran tx

update dbo.test set id=3

rollback tran tx
rollback tran tx

rollback tran tx

 

TSql Transaction

标签:

原文地址:http://www.cnblogs.com/ljhdo/p/4516815.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!