ABAP中的更新语句不起作用



我在ABAP中有一个UPDATE语句,看起来像:

UPDATE zicstt099 FROM TABLE lt_zicstt099

sy-subrc eq 4每次更新都失败。

数据库表ZICSTT099有三个主键:WEB_USER_ID &EMAIL_IDMANDT字段。

我试图改变EMAIL_ID值,但同样没有得到更新。

请帮助。

您不能使用UPDATE <target> FROM <wa>.UPDATE <target> FROM TABLE <itab>.语句更改主键字段,因为它们使用主键来查找它们必须更新的记录。

请使用UPDATE <target> SET <set1> ... WHERE ...语句。

你可以在这里找到细节:https://help.sap.com/doc/abapdocu_753_index_htm/7.53/en-US/abapupdate_source.htm !ABAP_ALTERNATIVE_1@1@

在使用UPDATE之后,如果sy-subrc = 4,那么至少有一行不能被修改,要么是因为没有找到合适的行,要么是因为修改后的行会导致主键中出现双表项,或者导致数据库表中出现唯一的二级索引。

UPDATE语句设置sy-dbcnt为修改行数。

你不能'更改'数据库中的关键字段。您可以删除原始条目并使用另一个键插入新条目。但是你不能改变一个键域。(我不能检查实际,如果modify是自己做的。

如果你必须改变一个关键字段,你应该考虑你的数据库定义。

关于更改关键字段的更多信息:我们可以更新表的主键值吗?

如果您尝试使用前面提到的键创建表,我建议您使用以下语法

update lt_zicstt099 set email_id = 'some value' where WEB_USER_ID = 'some web id'.

要检查表是否更新,可以使用sy-dbcnt来知道更新的行数。如果你仍然遇到问题,请在下面评论

相关内容

  • 没有找到相关文章

最新更新