社区
MS-SQL Server
帖子详情
问个弱智的问题,什么叫‘回滚’?
abcd4321
2003-11-03 10:48:57
比如:‘事务被回滚’
...全文
277
7
打赏
收藏
问个弱智的问题,什么叫‘回滚’?
比如:‘事务被回滚’
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
rollback
2003-11-03
打赏
举报
回复
简单的说就是在数据库中恢复到事务执行前的状态。
“回滚一般都是利用在分布式系统中么?”
也不一定在分布式系统中,单机的也一样
abcd4321
2003-11-03
打赏
举报
回复
谢谢大力,谢谢马可,回滚一般都是利用在分布式系统中么?随后马上给分
zjcxc
元老
2003-11-03
打赏
举报
回复
回滚针对事务而言,将将一个事务开启后面的所做的操作全部取消.
txlicenhe
2003-11-03
打赏
举报
回复
ROLLBACK TRANSACTION
将显式事务或隐性事务回滚到事务的起点或事务内的某个保存点。
语法
ROLLBACK [ TRAN [ SACTION ]
[ transaction_name | @tran_name_variable
| savepoint_name | @savepoint_variable ] ]
参数
transaction_name
是给 BEGIN TRANSACTION 上的事务指派的名称。transaction_name 必须符合标识符规则,但只使用事务名称的前 32 个字符。嵌套事务时,transaction_name 必须是来自最远的 BEGIN TRANSACTION 语句的名称。
@tran_name_variable
是用户定义的、含有有效事务名称的变量的名称。必须用 char、varchar、nchar 或 nvarchar 数据类型声明该变量。
savepoint_name
是来自 SAVE TRANSACTION 语句的 savepoint_name。savepoint_name 必须符合标识符规则。当条件回滚只影响事务的一部分时使用 savepoint_name。
@savepoint_variable
是用户定义的、含有有效保存点名称的变量的名称。必须用 char、varchar、nchar 或 nvarchar 数据类型声明该变量。
注释
ROLLBACK TRANSACTION 清除自事务的起点或到某个保存点所做的所有数据修改。ROLLBACK 还释放由事务控制的资源。
不带 savepoint_name 和 transaction_name 的 ROLLBACK TRANSACTION 回滚到事务的起点。嵌套事务时,该语句将所有内层事务回滚到最远的 BEGIN TRANSACTION 语句。在这两种情况下,ROLLBACK TRANSACTION 均将 @@TRANCOUNT 系统函数减为 0。ROLLBACK TRANSACTION savepoint_name 不减少 @@TRANCOUNT。
ROLLBACK TRANSACTION 语句若指定 savepoint_name 则不释放任何锁。
在由 BEGIN DISTRIBUTED TRANSACTION 显式启动或从本地事务升级而来的分布式事务中,ROLLBACK TRANSACTION 不能引用 savepoint_name。
在执行 COMMIT TRANSACTION 语句后不能回滚事务。
在事务内允许有重复的保存点名称,但 ROLLBACK TRANSACTION 若使用重复的保存点名称,则只回滚到最近的使用该保存点名称的 SAVE TRANSACTION。
在存储过程中,不带 savepoint_name 和 transaction_name 的 ROLLBACK TRANSACTION 语句将所有语句回滚到最远的 BEGIN TRANSACTION。在存储过程中,ROLLBACK TRANSACTION 语句使 @@TRANCOUNT 在触发器完成时的值不同于调用该存储过程时的 @@TRANCOUNT 值,并且生成一个信息。该信息不影响后面的处理。
如果在触发器中发出 ROLLBACK TRANSACTION:
将回滚对当前事务中的那一点所做的所有数据修改,包括触发器所做的修改。
触发器继续执行 ROLLBACK 语句之后的所有其余语句。如果这些语句中的任意语句修改数据,则不回滚这些修改。执行其余的语句不会激发嵌套触发器。
在批处理中,不执行所有位于激发触发器的语句之后的语句。
每次进入触发器,@@TRANCOUNT 就增加 1,即使在自动提交模式下也是如此。(系统将触发器视作隐性嵌套事务。)
在存储过程中,ROLLBACK TRANSACTION 语句不影响调用该过程的批处理中的后续语句;将执行批处理中的后续语句。在触发器中,ROLLBACK TRANSACTION 语句终止含有激发触发器的语句的批处理;不执行批处理中的后续语句。
ROLLBACK TRANSACTION 语句不生成显示给用户的信息。如果在存储过程或触发器中需要警告,请使用 RAISERROR 或 PRINT 语句。RAISERROR 是用于指出错误的首选语句。
ROLLBACK 对游标的影响由下面三个规则定义:
当 CURSOR_CLOSE_ON_COMMIT 设置为 ON 时,ROLLBACK 关闭但不释放所有打开的游标。
当 CURSOR_CLOSE_ON_COMMIT 设置为 OFF 时,ROLLBACK 不影响任何打开的同步 STATIC 或 INSENSITIVE 游标,也不影响已完全填充的异步 STATIC 游标。将关闭但不释放任何其它类型的打开的游标。
对于导致终止批处理并生成内部回滚的错误,将释放在含有该错误语句的批处理内声明的所有游标。不论游标的类型或 CURSOR_CLOSE_ON_COMMIT 的设置,所有游标均将被释放,其中包括在该错误批处理所调用的存储过程内声明的游标。在该错误批处理之前的批处理内声明的游标以规则 1 和 2 为准。死锁错误就属于这类错误。在触发器中发出的 ROLLBACK 语句也自动生成这类错误。
权限
ROLLBACK TRANSACTION 权限默认授予任何有效用户。
txlicenhe
2003-11-03
打赏
举报
回复
begin tran
insert 表 values(1)
insert 表 values(2)
rollback tran
select * from 表 ---没有插入1和2。这就是回滚
从begin tran开始到rollback tran之间的所有操作都没有生效。
pengdali
2003-11-03
打赏
举报
回复
begin tran
insert 表 values(1)
insert 表 values(2)
rollback tran
select * from 表 ---没有插入1和2。这就是回滚
w_rose
2003-11-03
打赏
举报
回复
补充一点,也许有利于全面认识会论的含义!
如果你写一个很长(时间)的事务,然后在提交(Commit)之前瞬间立刻把服务器电源拔掉,然后重新插上电源启动服务器,你会发现数据库自动并且正确地回滚了。因此回滚操作是建立在“额外”利用一些技术保护数据库的数据和结构的基础上的。
Git学习笔记:版本
回滚
前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习。 本教程参考廖雪峰的Git教程 Git简介可以参看:Git简介 目录 前言 目录 创建版本库 把文件添加到版本库 小结 时光机穿梭 小结 版本回退 小结 创建版本库 什么是版本库呢?版本库又名...
Oracle
弱智
100问
Oracle
弱智
100问 1. Oracle安装完成后的初始口令? internal/oracle sys/change_on_install system/manager scott/tiger sysman/oem_temp 2. ORACLE9IAS WEB CACHE的初始默认用户和密码? administrator/administrato...
Kiro 横空出世就爆火,可免费使用 Claude Sonnet 4.0 和 3.7,Cursor 这次可以彻底扔了。。。
体验一翻,感觉 Kiro 确实比 Cursor 和 Claude Code 体验要好,Claude Code 虽然很强,但终端界面体验确实欠佳,而且中间过程没有 Kiro 这么细致。Claude Code 的优势是,它可以在任意终端运行,不限定 IDE,也支持主流 IDE 插件,并且原生支持自家的 Claude 大模型,理论上速度更快、更聪明。Kiro 的优势是,它目前免费使用 Claude Sonnet 4.0 和 3.7(未来 100% 收费,估计不会低于 20 美元/月),
今天写出一个十分
弱智
的 bug!
来源:cnblogs.com/supercj/p/10333918.html今天写出一个十分
弱智
的bug,记录一下,提醒自己以后别这种犯错,不怕丢人哈~在写一个分页查询记录的sql时,要...
计算机视觉算法工程师面试必知10个最难回答
问题
(面试常考,建议收藏!)
1.springBoot有哪些注解?SpringBootApplication(启动)Autowired(控制反转注入)Configuration(配置)2.springBoot启动流程?第一步加载元注解,定义作为范围、有效期、是否允许继承、动态生成文档文件第二步加载spring:第一步加载所有的配置文件,第二部开启自动化配置,第三步过滤掉部分未引用的加载项3.spring注解什么情况下会失效?①没有被spring管理②方法不是public的③不支持事务④出现异常try-catch处理掉,事务无法
回滚
4.N
MS-SQL Server
34,874
社区成员
254,640
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章