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

COMMIT和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 返回一个非零值,就没有成功地取消所作的更改

分享到:
评论

相关推荐

    SQL事务用法begin tran,commit tran和rollback tran的用法

    Sql Server 2005/2008中提供了begin tran,commit tran和rollback tran来使用事务。begin tran表示开始事务, commit tran表示提交事务,rollback tran表示回滚事物

    JUNIPER交换机 EX系列交换机配置操作手册v2.0

    commit和rollback EX交换机命令菜单结构 第二章 操作指导 通过CONSOLE线连接交换机 SYSTEM系统参数配置 设置root密码 设置主机名 设置DNS服务器 设置日期时间 设置NTP服务器 第三章 交换机维护操作 交换机启动...

    SQL语句语法.doc

    13.4.1. START TRANSACTION, COMMIT和ROLLBACK语法 13.4.2. 不能回滚的语句 13.4.3. 会造成隐式提交的语句 13.4.4. SAVEPOINT和ROLLBACK TO SAVEPOINT语法 13.4.5. LOCK TABLES和UNLOCK TABLES语法 13.4.6. SET...

    大厂常见经典mysql面试题.rar

    在MySQL中,使用BEGIN、COMMIT和ROLLBACK语句来开启、提交和回滚事务。事务可以保证数据的一致性和完整性,同时可以避免在多个用户同时操作同一份数据时产生的冲突。 MySQL中的索引是什么,有什么作用? 索引是一种...

    Mysql事务操作失败如何解决

    如果要实现事务的原子性,则就需要commit和rollback命令配合上程序上的一个业务逻辑才能可以,具体业务逻辑代码如下示例代码: 1.现象  程序中打开了事务进行插入,但是没有commit,表中的数据已经存在,就是回滚...

    oracle10g课堂练习I(2)

    COMMIT 和 ROLLBACK 命令 8-9 PL/SQL 8-10 管理 PL/SQL 对象 8-11 PL/SQL 对象 8-12 函数 8-13 过程 8-14 程序包 8-15 程序包说明和程序包体 8-16 内置程序包 8-17 触发器 8-18 触发事件 8-19 锁定 8-20 ...

    mysql 锁表锁行语句分享(MySQL事务处理)

    代码如下: mysql_query(“set autocommit=0”); $list_one = $db->fetch_first(“select * from prizes ... START TRANSACTION, COMMIT和ROLLBACK语法 代码如下: START TRANSACTION | BEGIN [WORK] COMMIT [WORK]

    Oracle8i_9i数据库基础

    §1.3.1 SQL和SQL*PLUS的差别 25 §1.3.2 PL/SQL语言 27 §1.4 登录到SQL*PLUS 27 §1.4.1 UNIX环境 27 §1.4.2 Windows NT和WINDOWS/2000环境 29 §1.5 常用SQL*PLUS 附加命令简介 32 §1.5.1 登录到SQL*PLUS 32 §...

    MySQL 5.1中文手冊

    13.4.1. START TRANSACTION, COMMIT和ROLLBACK语法 13.4.2. 不能回滚的语句 13.4.3. 会造成隐式提交的语句 13.4.4. SAVEPOINT和ROLLBACK TO SAVEPOINT语法 13.4.5. LOCK TABLES和UNLOCK TABLES语法 13.4.6. SET ...

    mysql官方中文参考手册

    13.4.1. START TRANSACTION, COMMIT和ROLLBACK语法 13.4.2. 不能回滚的语句 13.4.3. 会造成隐式提交的语句 13.4.4. SAVEPOINT和ROLLBACK TO SAVEPOINT语法 13.4.5. LOCK TABLES和UNLOCK TABLES语法 13.4.6. SET ...

    MySQL 5.1参考手册 (中文版)

    13.4.1. START TRANSACTION, COMMIT和ROLLBACK语法 13.4.2. 不能回滚的语句 13.4.3. 会造成隐式提交的语句 13.4.4. SAVEPOINT和ROLLBACK TO SAVEPOINT语法 13.4.5. LOCK TABLES和UNLOCK TABLES语法 13.4.6. SET ...

    MySQL 5.1官方简体中文参考手册

    目录 前言 1. 一般信息 1.1. 关于本手册 ...1.5.5. MaxDB和MySQL之间的特性差异 1.5.6. MaxDB和MySQL之间的协同性 1.5.7. 与MaxDB有关的链接 1.6. MySQL发展大事记 1.6.1. MySQL 5.1的新特性 1.7. MySQL信息源 ...

    MYSQL中文手册

    言 1. 一般信息 1.1. 关于本手册 1.2. 本手册采用的惯例 1.3. MySQL AB概述 1.4. MySQL数据库管理系统概述 ...1.5.4. 许可和支持 ...1.5.5. MaxDB和MySQL之间的特性...13.4.1. START TRANSACTION, COMMIT和ROLLBACK语法...

    DB2 9 基础(730 考试)认证指南,第 4 部分

    在学完本教程之后,您应该能够: • 了解 SQL 的基本知识,特别是 SQL 语言的元素 ...• 使用 COMMIT 和 ROLLBACK 语句管理事务,知道是什么组成了事务边界 • 从命令行创建并调用 SQL 过程和用户定义函数

    MySQL 5.1参考手册中文版

    13.4.1. START TRANSACTION, COMMIT和ROLLBACK语法 13.4.2. 不能回滚的语句 13.4.3. 会造成隐式提交的语句 13.4.4. SAVEPOINT和ROLLBACK TO SAVEPOINT语法 13.4.5. LOCK TABLES和UNLOCK TABLES语法 13.4.6. SET...

    MySQL 5.1参考手册

    13.4.1. START TRANSACTION, COMMIT和ROLLBACK语法 13.4.2. 不能回滚的语句 13.4.3. 会造成隐式提交的语句 13.4.4. SAVEPOINT和ROLLBACK TO SAVEPOINT语法 13.4.5. LOCK TABLES和UNLOCK TABLES语法 13.4.6. SET ...

    MySQL5.1参考手册官方简体中文版

    13.4.1. START TRANSACTION, COMMIT和ROLLBACK语法 13.4.2. 不能回滚的语句 13.4.3. 会造成隐式提交的语句 13.4.4. SAVEPOINT和ROLLBACK TO SAVEPOINT语法 13.4.5. LOCK TABLES和UNLOCK TABLES语法 13.4.6. SET ...

Global site tag (gtag.js) - Google Analytics