簡體   English   中英

ABAP 中的更新語句不起作用

[英]Update Statement in ABAP not working

我在ABAP 中有一個UPDATE語句,它看起來像:

UPDATE zicstt099 FROM TABLE lt_zicstt099

每次使用sy-subrc eq 4時更新都會失敗。

數據庫表ZICSTT099具有三個主鍵: WEB_USER_IDEMAIL_ID以及MANDT字段。

我正在嘗試更改EMAIL_ID值,但同樣沒有得到更新。

請幫忙。

您不能使用UPDATE <target> FROM <wa>.更改主鍵字段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 來了解更新的行數。 如果您仍然遇到問題,請在下方評論

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM