执行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语句