我在ABAP中有一个语句,如下所示:
UPDATE zicstt099 FROM TABLE lt_zicstt099
每次使用sy-subrc eq 4更新都会失败。
数据库表ZICSTT099有三个主键:WEB_USER_ID & EMAIL_ID以及MANDT字段。
我正在尝试更改EMAIL_ID值,但相同的是没有更新。
帮帮忙吧。
发布于 2011-08-30 06:09:00
不能使用UPDATE <target> FROM <wa>.和UPDATE <target> FROM TABLE <itab>.语句更改主键字段,因为它们使用主键查找必须更新的记录。
使用UPDATE <target> SET <set1> ... WHERE ...语句代替。
您可以在这里找到详细信息:1@1@
发布于 2012-02-16 11:57:14
使用更新后,如果sy-subrc = 4,则至少有一行无法更改,原因要么是找不到合适的行,要么是因为更改将生成一行,导致主键中的双项或数据库表中唯一的辅助索引。
语句更新将sy-dbcnt设置为更改行数。
发布于 2011-08-30 07:31:17
您不能“更改”数据库中的关键字段。您可以删除原来的条目,并使用另一个键插入一个新条目。但你不能改变一个关键字段。(如果modify是自己做的,我无法检查实际情况。
如果您必须更改一个关键字段,则应该考虑您的DB-定义。
有关更改关键字段的更多信息:我们可以更新表的主键值吗?
https://stackoverflow.com/questions/7238239
复制相似问题