聊聊更新表时的隐式提交
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
但是数据并没有更新到数据库表中
以上就是对隐式提交的举例说明,希望对您有所帮助
定期更文,欢迎关注
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏