搜索
编程论坛
→
数据库技术
→
『 SQL Server论坛 』
→ 请教怎样使用事务中的rollback命令
标题:
请教怎样使用事务中的rollback命令
只看楼主
studentabc
等 级:
新手上路
帖 子:41
专家分:0
注 册:2005-3-4
楼主
问题点数:0 回复次数:7
请教怎样使用事务中的rollback命令
我知道这是个比较简单的问题,可是我不会啊,又没人教我,恳请各位帮忙,最好给个例子
我想知道:在begin tran 和 commit tran之间的几条sql语句执行时有一条出现了错误,想回滚到begin tran之前的状态,即相当于没执行任何一条sql语句。
怎么做?
搜索更多相关主题的帖子:
rollback
事务
命令
2005-04-20 15:39
EA_Games
等 级:
新手上路
威 望:
6
帖 子:539
专家分:0
注 册:2005-3-13
第
2
楼
得分:0
BEGIN TRANSACTION my_transaction_delete
USE database_name
GO
DELETE FROM table_name WHERE table_column='XXX'
SAVE TRANSACTION after_delete --设定保存点
UPDATE table_name SET table_column='XXXX' WHERE table_column='XXXXX'
IF @@ERROR!=0 OR @@ROWCOUNT=0 THEN
BEGIN
ROLLBACK TRANSACTION after_delete /*回滚到保存点after_delete,如果使用
rollback my_transaction_delete 则会回滚到事务前*/
PRINT '更新出错'
END
COMMIT TRANSACTION my_transaction_delete
GO
2005-04-20 20:14
studentabc
等 级:
新手上路
帖 子:41
专家分:0
注 册:2005-3-4
第
3
楼
得分:0
谢谢楼上的朋友,太感谢了!
2005-04-21 21:43
EA_Games
等 级:
新手上路
威 望:
6
帖 子:539
专家分:0
注 册:2005-3-13
第
4
楼
得分:0
不用客气,欢迎常来SQL SERVER坐坐,一起学习。
2005-04-21 22:31
studentabc
等 级:
新手上路
帖 子:41
专家分:0
注 册:2005-3-4
第
5
楼
得分:0
还有个问题,当transaction中的一条命令出错时,使用了rollback,但下面的命令还是会继续执行,我希望在一个命令出错后整个事务都取消,该条出错语句后的命令都不执行,应该怎么写啊?
2005-04-22 09:21
EA_Games
等 级:
新手上路
威 望:
6
帖 子:539
专家分:0
注 册:2005-3-13
第
6
楼
得分:0
那你所有的事务都回滚,然后结束事务就可以了。
ROLLBACK TRANSACTION after_delete /*回滚到保存点after_delete,如果使用
rollback my_transaction_delete 则会回滚到事务前*/
(参考上例)
2005-04-22 23:13
studentabc
等 级:
新手上路
帖 子:41
专家分:0
注 册:2005-3-4
第
7
楼
得分:0
结束事务?可以在未执行下面的sql语句的情况下中断事务的执行吗,像函数里的exit sub 一样,命令怎么写啊。
如果中间某条命令出错,而后来的都正确,那么后来@@error变量的值还是等于0的啊,在最下面的代码中怎么判断中间的语句出现了错误呢?
麻烦你了,请告诉我该怎么做。
抵制日货,支持!!从我做起
2005-04-23 14:18
erhan
等 级:
新手上路
帖 子:2
专家分:0
注 册:2006-3-26
第
8
楼
得分:0
不知道正经应该怎么做,不过你把后续语句放到那个IF的ELSE里,应该就可以了。呼呼 。
2006-03-26 18:04
8
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-16179-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.521888 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved