**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并未将数据更新到自建表中
当执行完毕,数据更新到自建表
**2.2**
**WAIT关键字**
当遇到WAIT UP TO 1 SECONDS或WAIT UNTIL 这种操作,将执行提交
等待结束后,数据更新到自建表
**2.3**
**MESSAGE**
当弹出E、I、W类型消息时,将执行提交
弹出消息,数据更新成功
**2.4**
**异步或远程调用RFC**
**2.4.1**
**STARTING NEW TASK 调用RFC**
执行完毕,数据更新成功
**2.4.2**
**远程调用RFC**
调用结束,数据更新成功
**2.4.3**
**同步调用RFC(不触发)**
直接调用函数,不会触发提交
调用结束,数据并没有更新
**2.4.4**
**IN BACKGROUND TASK调用RFC(不触发)**
事务性异步调用,不会触发
调用结束,数据并没有更新
**2.5**
**SUBMIT**
当调用其他程序时
调用完毕,数据更新成功
**2.6**
**CALL SCREEN**
跳转到其他屏幕时
调用9000屏幕后,数据更新成功
**2.7**
**数据库操作(不提交)**
当更新1009数据到自建表,接着执行SELECT语句
SELECT能查询到更新的1009但是数据并没有更新到数据库表中
以上就是对隐式提交的举例说明,希望对您有所帮助