Created by Jerry Wang, last modified on Jul 22, 2014

有两张表:

用一个report测试,表1是直接online update,表2在update function module里update,由于有了SET UPDATE TASK LOCAL的keyword,使得function module ZINSERT_TABLE2 也在当前work process内执行。

data: ls_jerry1 type ZJERRYTABLE1,ls_jerry2 type ZJERRYTABLE2.ls_jerry1-client = sy-mandt.
ls_jerry1-inumber = 'i042416'.
ls_jerry1-name = 'WANGJER'.
insert ZJERRYTABLE1 FROM ls_jerry1.CALL FUNCTION 'ZINSERT_TABLE2' IN UPDATE TASK.SET UPDATE TASK LOCAL.COMMIT WORK AND WAIT.

function module内只是一个很简单的assert语句用于模拟update function module出错的情况:

F8执行report,收到期望中的update function module执行出错的提示:

但是SE16 里table1里检查table1 已经有一条entry成功插入了:

再来模拟table1 update不成功,但是table2 update成功的scenario. 将update function module改成update table2:

report 仍然保持不变,这样table1的update会由于duplicate key而失败。

report执行完之后,table1仍然只有1条数据,但是table2已经insert成功了。

究其原因,在这个例子里,table1和table2的update并不是放在同一个SAP LUW里的。这行ABAP OPEN SQL insert 语句(insert ZJERRYTABLE1 FROM ls_jerry1.), 什么时候会真正地把数据写到database server里?当遇到显式的database commit( COMMIT WORK ), 或者隐式的database 操作时,表1的操作就会立即写到database里,而与表2无关。
关于这两种不同的database commit方式,可以查看ABAP help:

在同一个workprocess里对两张表分别使用online update和update function module update相关推荐

  1. mysql不同服务器数据库查询_不同服务器不同数据库两张表连接查询使用经验

    使用SQL语句连接查询位于两个不同的服务器不同的数据库中的两张表,最初将SQL语句写成以下形式select*fromProduct pinnerjoin opendatasource('SQLOLED ...

  2. 关于跨DB增量(增、改)同步两张表的数据小技巧

    有些场景下,需要隔离不同的DB,彼此DB之间不能互相访问,但实际的业务场景又需要从A DB访问B DB的情形,这时怎么办?我认为有如下常规的三种方案: 1.双方提供RESET API,需要访问不同DB ...

  3. mysql 两张表合并查询_中级数据分析-多表查询

    表的加法 表的联结 联结应用案例 case应用案例 一.表的加法 加法:union 表的加法是把两个表的数据,按行合并在一起. 表的加法,会把两个表里重复的数据删除,只保留一个. 如果想保留重复数据, ...

  4. Oracle 对比两张表的数据是否一致

    使用 minus 关键字(minus:差别,缺少) 有两张表CHECK_CITY_1和CHECK_CITY_2,现在要互相对比一下,两个表数据的差异,(即A中有哪些B里没有,B中有哪些A中没有) se ...

  5. MySQL 两张表数据合并

    有一个需求, 需要从数据库中导出两张表的数据到同一个excel中 鉴于是临时的业务需求, 直接使用Navicat 进行查询并导出数据. 数据涉及到三张表 CREATE TABLE `bigdata_q ...

  6. JAVA两个表相关联_java实现两张表的关联查询(非数据库语言)

    已知我有两张表: 我现在查询时需要同时获取两张表对应的数据.比如我想要获取 stuid,honName,obreson三个对应字段.我在脑子里梳理了一下思路,以我目前的知识储备,只能在数据库写一下两个 ...

  7. postgresql中连接两张表更新第三张表(updata)

    目录 前言 准备数据库和表 表1 表2 最终员工表 SQL语句 扩展:with语句 前言 在工作中可能会遇到需要结合两张表的数据来添加到第三张表,或者说是第三张表数据有误,需要覆盖更新,本章通过举例来 ...

  8. oracle横向合并两张表,SQL中将两个表合并成一个新表 SQL如何合并两个表并生成一个新表?...

    sql把两个表合并成一个新表的语句应该怎么写SQL SERVER: select * into 表3 from ( select 字段列表1 from 表1 union all select 字段列表 ...

  9. mysql查找两表中不同的数据库表_各位大侠怎样查找两张表的里面的数据(这两张表在不同的数据库)...

    Oracle: 一.同一个实例中的两个表 相应有两个用户a(表t1).b(表t2) 将用户a的t1查询权限授予b用户 grant select on t1 to b; 之后,b就可以查询t1表了 se ...

最新文章

  1. SIM800C SIM卡唯一标识符ICCID
  2. 背水一战 Windows 10 (10) - 资源: StaticResource, ThemeResource
  3. 第二十二讲 延迟定理
  4. 【自动驾驶】28.【右手坐标系】与【右手法则】分析、【右手法则的正方向】 与 【逆时针为正方向】 的分析
  5. TSS详解 ——《x86汇编语言:从实模式到保护模式》读书笔记33
  6. HTML之六:图像的热区连接
  7. 6月开招|工业互联才是王道,最高可达50k!
  8. Android之开启内置闹钟与已安装的应用程序设置
  9. 在openEuler上做开发?这个大赛拿出30万寻找开源的yyds
  10. 关于以太网PAUSE的一点研究
  11. Android的ListFragment和Fragment的使用
  12. Java通过微信公众号获取地理位置信息
  13. 十大因素——造就优秀的董事长
  14. linux kill全部进程,linux进程管理及kill命令详解
  15. excel二极管伏安特性曲线_基础元件介绍—半导体二极管
  16. QT24A01 TNK以太网变压器
  17. ctf工具整理-持续更新
  18. JSCRIPT如何调试
  19. com.mongodb.MongoSocketOpenException: Exception opening socket
  20. arc093F Dark Horse

热门文章

  1. 凝结时光:ImageMagick 制作 gif
  2. wxPython实现在浏览器中打开链接
  3. windows 卸载IE8还原IE7的方法
  4. pyecharts学习(part5)--散点图,地图,词云图
  5. 第三次学JAVA再学不好就吃翔(part96)--异常
  6. Django(part4)--练习及re_path方法
  7. 第三次学JAVA再学不好就吃翔(part37)--接口概述
  8. 第三次学JAVA再学不好就吃翔(part2)--基础语法之注释
  9. 《复杂》读书笔记(part3)--熵
  10. 怎么让电脑屏幕一直亮着_电视机指示灯亮不开机怎么办 电视机故障及维修介绍【详解】...