ABAP中的Update语句不工作

ABAP中的Update语句不工作,abap,Abap,我在ABAP中有一个UPDATE语句,看起来像: 从表lt_zicst099更新zicst099 每次使用sy subrc eq 4更新都失败 数据库表ZICSTT099有三个主键:WEB\u用户ID和EMAIL\u ID以及MANDT字段 我正在尝试更改电子邮件ID值,但该值未得到更新 请提供帮助。您不能使用更新自。和更新自表。语句更改主键字段,因为它们使用主键查找必须更新的记录 使用更新集。。。其中…语句 您可以在此处找到详细信息: 您不能“更改”数据库中的关键字段。 您可以删除原始条目,然

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

从表lt_zicst099更新zicst099

每次使用
sy subrc eq 4
更新都失败

数据库表
ZICSTT099
有三个主键:
WEB\u用户ID
EMAIL\u ID
以及
MANDT
字段

我正在尝试更改
电子邮件ID
值,但该值未得到更新


请提供帮助。

您不能使用
更新自。
更新自表。
语句更改主键字段,因为它们使用主键查找必须更新的记录

使用
更新集。。。其中…
语句

您可以在此处找到详细信息:
您不能“更改”数据库中的关键字段。 您可以删除原始条目,然后用另一个密钥插入新条目。但不能更改关键字段。(如果
modify
是自己做的,我无法检查实际值

如果必须更改键字段,则应考虑DB定义

有关更改关键字段的详细信息:

使用后,如果
sy subrc
=4,则至少有一行无法更改,原因可能是找不到合适的行,或者更改将生成一行,导致主键中出现两个条目或数据库表中出现唯一的次索引


语句更新将
sy dbcnt
设置为更改的行数。

您好,我尝试使用您提到的键创建表,我建议您使用以下语法

update lt_zicstt099 set email_id = 'some value' where WEB_USER_ID = 'some web id'.
要检查表是否更新,可以使用sy dbcnt了解更新的行数。
如果您仍然面临问题,请在下面评论

这是错误的,至少在Open SQL中是这样。请参阅René引用的文档。