`
zjut_xiongfeng
  • 浏览: 280242 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

COMMIT AND ROLLBACK(

阅读更多

最近在做数据库的更新,而每次做的时候,都要用到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

分享到:
评论

相关推荐

    微软内部资料-SQL性能优化3

    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:...

    Killtest1Z0-051.pdf

    因此,选项B(Savepoints may be used to ROLLBACK)和D(Savepoints are effective for both COMMIT and ROLLBACK)是正确的。选项A错误,因为保存点不仅对COMMIT有效,也可以用于ROLLBACK。选项C错误,因为保存点...

    微软SQL Server 70-761认证

    7. 事务的提交与回滚(Commit and Rollback) 在存储过程中对事务进行管理,若插入操作失败,相关数据不应永久写入数据库。这需要使用事务控制命令(如BEGIN TRANSACTION, COMMIT TRANSACTION, ROLLBACK TRANSACTION...

    数据的操作和管理

    6. **数据库事务**(Commit and Rollback) 事务处理是确保数据一致性的重要机制。`COMMIT`用于提交事务,使更改永久化;而`ROLLBACK`用于撤销所有未提交的更改。在事务中,可以设置保存点(`SAVEPOINT`),以便在...

    Fescar在微服务架构下分布式一致性实践.pptx

    Fescar,全称为Fast & Easy Commit And Rollback,是阿里巴巴开源的分布式事务解决方案,旨在提供在微服务架构中类似本地事务的使用体验。它解决了在分布式环境中实现事务一致性这一难题,为业务开发提供了简单而...

    seata-server-1.3.0.zip

    阿里巴巴中间件团队发起了开源项目 Fescar(Fast & EaSy Commit And Rollback)和社区一起共建开源分布式事务解决方案。Fescar 的愿景是让分布式事务的使用像本地事务的使用一样,简单和高效,并逐步解决开发者们...

    Less08_Data_TB3.pdf

    ##### 提交与回滚 (The COMMIT and ROLLBACK Commands) - **提交**:使用 `COMMIT` 命令使事务中的更改永久生效。 - **回滚**:使用 `ROLLBACK` 命令撤销事务中的所有更改。 #### PL/SQL ##### 什么是 PL/SQL? PL/...

    seata-oracle版undolog.sql

    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...

    Implementing a Distributed Two-Phase-Commit Scenario with Web Services and SAP NetWeaver PI 7.1.pdf

    这两个操作分别对应了TPC中的准备阶段(Prepare Phase)和提交/回滚阶段(Commit/Rollback Phase)。 ##### TU&C/C事实 - **暂定更新**:在这个阶段,事务参与者将数据标记为待更新状态,但不实际更新。 - **确认...

    账号体系安全实践.pdf

    - 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.

    oracle 事务1

    - 使用COMMIT WORK [AND] [NO] RELEASE选项,可以决定提交后是否释放锁定的资源。 6. 事务的自动提交模式 - Oracle默认开启自动提交模式,即每个DML语句执行后自动提交。关闭自动提交(通过`SET AUTOCOMMIT OFF`...

    Introduction to Transactions

    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基初语法

    本文将深入探讨Oracle的基本语法,包括插入(INSERT)、更新(UPDATE)、删除(DELETE)以及查询(SELECT)等操作,同时也会提及一些常用的SQL函数和事务管理,如SAVEPOINT、COMMIT和ROLLBACK。 1. **INSERT语句**...

    cli guide and Reference

    - **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 ...

    DB2 9 基础(730 考试)认证指南,第 6 部分 数据并发性

    通过掌握锁定机制、时间戳、乐观锁定和多版本并发控制等技术,以及如何在SQL语句中使用COMMIT和ROLLBACK,可以有效管理数据库中的并发事务,确保数据的完整性和系统的高性能运行。这对于任何希望在企业级应用环境中...

    多个DW进行update时正确的写法

    2. **commit和rollback**: - **commit**: 如果所有更新操作都成功,那么执行`commit`来提交事务,保存所有更改。 - **resetUpdate()**: 调用`resetUpdate()`方法可以清除数据窗口内部的更新标记,这对于后续操作...

    Handle Sql server and Foxpro database with .NET Source

    在SQL Server中,事务是确保数据一致性的重要机制,可以通过BeginTransaction、Commit和Rollback等方法来控制。而在FoxPro中,虽然事务管理不如SQL Server强大,但仍然可以通过命令如TRANSACTION和COMMIT来实现。 ...

    IOS XR Practical Introduction

    Command Modes & Node Addresses Configuration Model 2 stage commit Rollback Monitoring configuration Software Installation Packages and PIEs Release numbering Modular software installation

Global site tag (gtag.js) - Google Analytics