最近在做数据库的更新,而每次做的时候,都要用到COMMIT AND ROLLBACK.自己实验了一下即使不用这个语句,数据库也会更新,那么为什么还必须用呢?一下就是答案啦.
1. COMMIT WORK 语句执行许多与任务的同步执行有关的功能。
ROLLBACK WORK语句“取消”任务同步执行的所有请求。
COMMIT WORK 语句进行下列处理:
?执行所有由PERFORM ON COMMIT 请求的FORM 例程。
?按优先级的升序执行这些例程,顺序由 PERFORM 语句的LEVEL 参数指定。
?如果请求,触发所有更新任务功能模块。
?如果请求,触发所有后台任务功能模块。
?触发数据库提交(依次释放数据库锁定)。
?清空反转日志。
反转日志包含应用更改前的表格快照。执行反转时,该快照用来将表格复位到原值。
?关闭所有打开的数据库光标。
?将所有TEMSE 对象写入永久性文件或数据库。
TEMSE文件是由于性能原因在执行事务期间缓存的临时序列文件。TEMSE文件的示例有假脱机对象或作业日志。
?将时间片计数器(用于访问工作进程)复位到0。
系统中的时间片计数器限制工作进程中程序运行的时间量。如果程序常常超过时间片限制,则可以使用COMMIT WORK为程序获得更多时间。
但是,要达此目的,必须很容易将处理分为更小单元(全部或没有操作)。然后可以在每个单元之后插入COMMIT WORK 语句。当然处理单元逻辑上必须独立,因为在发生错误时,不能取消前面的单元中所提交的更新。
ROLLBACK WORK“抛弃”当前事务的所有更新:
?抛弃所有以前用PERFORM ON COMMIT 登录的FORM例程
?在更新任务队列中将所有以前请求的更新任务功能标记为错误
?抛弃所有以前请求的后台任务功能
?从缓冲存储中删除所有TEMSE对象(临时 连续文件,如假脱机对象和作业日志)
?触发数据库反转操作(依次释放所有数据库锁定)
?关闭所有打开的数据库光标
2.以下情况需使用使用COMMIT和ROLLBACK语句。
1)通过INSERT、UPDATE和MODIFY语句对数据库进行更新事务后。
2) 执行BAPI处理后。一般使用BAPI函数BAPI_TRANSACTION_COMMIT(内含COMMIT语句) 。
3. 如果要保证数据库中当前所作的更改立即被确认,那么就必须使用COMMIT WORK 语句结束LUW。COMMIT WORK 在程序代码中标记了 LUW(几个作业联系在一起形成作业的逻辑单元) 结束并启动更新任务。在COMMIT WORK 语句以后,对数据库所作的所有更改都不能再取消。但是,如果在LUW 中出现了错误,就必须取消已经执行的部分。这意味着当前没有任何插入的行能 永久地保存在数据库中。要撤销当前LUW 对数据库的更改,请使用ROLLBACK WORK,它将取消前一次数据库提交后的所有更改。
4. COMMIT WORK [AND WAIT(同步)].
如果使用AND WAIT选项,那么在程序继续执行以前,它要等到更新任务的结束。如果更新是成功的,SY-SUBRC 就设置为0。如果 SY-SUBRC 返回一个非零值,就没有成功的存储所作的更改。
ROLLBACK WORK.
如果对更改的取消是成功的,SY-SUBRC 就设置为0。如果 SY-SUBRC 返回一个非零值,就没有成功地取消所作的更改
http://blog.sina.com.cn/s/blog_45afbbe50100etua.html
分享到:
相关推荐
Lesson 1: Concepts – Locks and Lock Manager 3 Lesson 2: Concepts – Batch and Transaction 31 Lesson 3: Concepts – Locks and Applications 51 Lesson 4: Information Collection and Analysis 63 Lesson 5:...
因此,选项B(Savepoints may be used to ROLLBACK)和D(Savepoints are effective for both COMMIT and ROLLBACK)是正确的。选项A错误,因为保存点不仅对COMMIT有效,也可以用于ROLLBACK。选项C错误,因为保存点...
7. 事务的提交与回滚(Commit and Rollback) 在存储过程中对事务进行管理,若插入操作失败,相关数据不应永久写入数据库。这需要使用事务控制命令(如BEGIN TRANSACTION, COMMIT TRANSACTION, ROLLBACK TRANSACTION...
6. **数据库事务**(Commit and Rollback) 事务处理是确保数据一致性的重要机制。`COMMIT`用于提交事务,使更改永久化;而`ROLLBACK`用于撤销所有未提交的更改。在事务中,可以设置保存点(`SAVEPOINT`),以便在...
Fescar,全称为Fast & Easy Commit And Rollback,是阿里巴巴开源的分布式事务解决方案,旨在提供在微服务架构中类似本地事务的使用体验。它解决了在分布式环境中实现事务一致性这一难题,为业务开发提供了简单而...
阿里巴巴中间件团队发起了开源项目 Fescar(Fast & EaSy Commit And Rollback)和社区一起共建开源分布式事务解决方案。Fescar 的愿景是让分布式事务的使用像本地事务的使用一样,简单和高效,并逐步解决开发者们...
##### 提交与回滚 (The COMMIT and ROLLBACK Commands) - **提交**:使用 `COMMIT` 命令使事务中的更改永久生效。 - **回滚**:使用 `ROLLBACK` 命令撤销事务中的所有更改。 #### PL/SQL ##### 什么是 PL/SQL? PL/...
2019 年 1 月,阿里巴巴中间件团队发起了开源项目 Fescar(Fast & EaSy Commit And Rollback),和社区一起共建开源分布式事务解决方案。Fescar 的愿景是让分布式事务的使用像本地事务的使用一样,简单和高效,并...
* 事务控制语言(TCL):COMMIT、ROLLBACK等 DB2保留字列表包括: * ADD * DETERMINISTIC * LEAVE * RESTART * AFTER * DISALLOW * LEFT * RESTRICT *_ALIAS * DISCONNECT * LIKE * RESULT Oracle保留字 Oracle...
这两个操作分别对应了TPC中的准备阶段(Prepare Phase)和提交/回滚阶段(Commit/Rollback Phase)。 ##### TU&C/C事实 - **暂定更新**:在这个阶段,事务参与者将数据标记为待更新状态,但不实际更新。 - **确认...
- Dirty Read:Transaction T1 modifies a data ...item before T1 performs a COMMIT or ROLLBACK. If T1 then performs a ROLLBACK, T2 has read a data item that was never committed and so never really existed.
- 使用COMMIT WORK [AND] [NO] RELEASE选项,可以决定提交后是否释放锁定的资源。 6. 事务的自动提交模式 - Oracle默认开启自动提交模式,即每个DML语句执行后自动提交。关闭自动提交(通过`SET AUTOCOMMIT OFF`...
starts with ‘begin transaction’ statement, and execution ends in ‘commit transaction’ or ‘rollback transaction’. Syntax differs from one system to another normally includes its own ...
本文将深入探讨Oracle的基本语法,包括插入(INSERT)、更新(UPDATE)、删除(DELETE)以及查询(SELECT)等操作,同时也会提及一些常用的SQL函数和事务管理,如SAVEPOINT、COMMIT和ROLLBACK。 1. **INSERT语句**...
- **In CLI Applications**: Transactions can be managed using specific CLI functions to begin, commit, or rollback transactions. - **Allocating Statement Handles**: Statement handles are used to ...
通过掌握锁定机制、时间戳、乐观锁定和多版本并发控制等技术,以及如何在SQL语句中使用COMMIT和ROLLBACK,可以有效管理数据库中的并发事务,确保数据的完整性和系统的高性能运行。这对于任何希望在企业级应用环境中...
2. **commit和rollback**: - **commit**: 如果所有更新操作都成功,那么执行`commit`来提交事务,保存所有更改。 - **resetUpdate()**: 调用`resetUpdate()`方法可以清除数据窗口内部的更新标记,这对于后续操作...
在SQL Server中,事务是确保数据一致性的重要机制,可以通过BeginTransaction、Commit和Rollback等方法来控制。而在FoxPro中,虽然事务管理不如SQL Server强大,但仍然可以通过命令如TRANSACTION和COMMIT来实现。 ...
Command Modes & Node Addresses Configuration Model 2 stage commit Rollback Monitoring configuration Software Installation Packages and PIEs Release numbering Modular software installation