首页 > 数据库技术 > 详细

TSql Transaction

时间:2015-05-20 12:52:45      阅读:243      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!