ABAP update

开发中,当工作区与数据库表结构不一致时,用UPDATE语句更新数据库表更便捷。但执行指定条件更新数据库表ZFIT054字段时数据未更新,虽语句返回结果正常。经分析,可能需在UPDATE语句后执行COMMIT语句,按此操作可解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

执行UPDATE语句更新数据库表:

使用ABAP update语句更新数据库数据

开发中,有时需要根据当前工作区的部分字段更新数据库表里面的数据,一般我们都是通过modify语句去进行数据库表的更新。但是当遇到工作区结构与数据库表结构不一致时,使用modify语句我们需要定义一个与数据库表结构相同的工作区,进行数据赋值后进行更新。

这时使用update语句可以更加的方便快捷:
UPDATE <数据库表> SET <字段名> = <具体值> WHERE 更新条件

注意:使用UPDATE时如果不是整表更新,一定要使用where条件指定具体数据,不然会整表更新。


问题描述

当我在程序中使用UPDATE根据数据之后,检查数据库表发现数据未更新

指定条件将数据库表ZFIT054中字段ztxbs置为空,当我运行完程序之后,发现数据库表ZFIT054中数据未更新,debug显示执行该语句后sy-subrc返回结果为0

UPDATE zfit054 SET ztxbs = ''  WHERE bukrs = <fs_out>-bukrs
                                                          AND ztxdh = <fs_out>-ztxdh
                                                          AND gjahr = <fs_out>-gjahrp
                                                          AND poper = <fs_out>-poperp.

原因分析:

没分析出什么原因,语句返回结果sy-subrc=0

记得之前和BASIS同事聊天,他说过当执行UPDATE语句时需要执行commit语句,数据才能有效更新,想来有可能是这个原因,只能操作着试一下。


解决方案:

在UPDATE语句执行后,在执行COMMIT语句

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值