1、显式提交和隐式提交

显式提交是指在程序中使用明确的提交操作来提交数据到数据库。这可以通过使用语句COMMIT或COMMIT WORK来实现。显式提交是一种手动提交数据的方式,它将当前的数据库事务立即提交,使之成为永久性的更改。在显式提交之后,数据将立即被其他事务所见。

与显式提交相对的是隐式提交。在隐式提交中,数据的提交由系统自动处理,而无需明确的提交操作。本文档将通过一个简单的数据库更新操作,介绍各种场景的隐式提交。

"--------------------@斌将军--------------------
DATA:ls_091 TYPE ztsd0091.ls_091-werks = '1001'.MODIFY ztsd0091 FROM ls_091.IF sy-subrc EQ 0.ENDIF.
"--------------------@斌将军--------------------

2、隐式提交场景

2.1、程序正常终止

如果程序没有报错正常执行完毕,系统将自动提交未提交的数据

如图所示,当程序被断点拦截,MODIFY并未将数据更新到自建表中

聊聊更新表时的隐式提交 _隐式提交

当执行完毕,数据更新到自建表

聊聊更新表时的隐式提交 _隐式提交_02

2.2、WAIT关键字

当遇到WAIT UP TO 1 SECONDS或WAIT UNTIL 这种操作,将执行提交

聊聊更新表时的隐式提交 _隐式提交_03

等待结束后,数据更新到自建表

聊聊更新表时的隐式提交 _隐式提交_04

2.3、MESSAGE

当弹出E、I、W类型消息时,将执行提交

聊聊更新表时的隐式提交 _隐式提交_05

弹出消息,数据更新成功

聊聊更新表时的隐式提交 _隐式提交_06

2.4、异步或远程调用RFC

2.4.1、STARTING NEW TASK 调用RFC

聊聊更新表时的隐式提交 _隐式提交_07

执行完毕,数据更新成功

聊聊更新表时的隐式提交 _隐式提交_08

2.4.2、远程调用RFC

聊聊更新表时的隐式提交 _隐式提交_09

调用结束,数据更新成功

聊聊更新表时的隐式提交 _隐式提交_10

2.4.3、同步调用RFC(不触发)

直接调用函数,不会触发提交

聊聊更新表时的隐式提交 _隐式提交_11

调用结束,数据并没有更新

聊聊更新表时的隐式提交 _隐式提交_12

2.4.4、IN BACKGROUND TASK调用RFC(不触发)

事务性异步调用,不会触发

聊聊更新表时的隐式提交 _隐式提交_13

调用结束,数据并没有更新

聊聊更新表时的隐式提交 _隐式提交_14

2.5、SUBMIT

当调用其他程序时

聊聊更新表时的隐式提交 _隐式提交_15

调用完毕,数据更新成功

聊聊更新表时的隐式提交 _隐式提交_16

2.6、CALL SCREEN

跳转到其他屏幕时

聊聊更新表时的隐式提交 _隐式提交_17

调用9000屏幕后,数据更新成功

聊聊更新表时的隐式提交 _隐式提交_18

2.7、数据库操作(不提交)

当更新1009数据到自建表,接着执行SELECT语句

聊聊更新表时的隐式提交 _隐式提交_19

SELECT能查询到更新的1009

聊聊更新表时的隐式提交 _隐式提交_20

但是数据并没有更新到数据库表中

聊聊更新表时的隐式提交 _隐式提交_21

以上就是对隐式提交的举例说明,希望对您有所帮助

定期更文,欢迎关注

聊聊更新表时的隐式提交 _隐式提交_22