Обновление выписки в ABAP не работает - PullRequest
5 голосов
/ 30 августа 2011

У меня есть UPDATE оператор в ABAP , который выглядит следующим образом:

UPDATE zicstt099 FROM TABLE lt_zicstt099

Обновление каждый раз завершается ошибкой с sy-subrc eq 4.

Таблица базы данных ZICSTT099 имеет три первичных ключа: WEB_USER_ID & EMAIL_ID вместе с полем MANDT.

Я пытаюсь изменить значение EMAIL_ID, но это не такОбновление.

Пожалуйста, помогите.

Ответы [ 4 ]

8 голосов
/ 30 августа 2011

Вы не можете изменить поля первичного ключа, используя операторы UPDATE <target> FROM <wa>. и UPDATE <target> FROM TABLE <itab>., так как они используют первичный ключ для поиска записей, которые они должны обновить.

Вместо этого используйте оператор UPDATE <target> SET <set1> ... WHERE ....

Подробности можно найти здесь: http://help.sap.com/abapdocu_70/en/ABAPUPDATE_SOURCE.htm#&ABAP_ALTERNATIVE_1@1@

1 голос
/ 16 февраля 2012

После использования ОБНОВЛЕНИЕ , если sy-subrc = 4, то по крайней мере одна строка не может быть изменена, либо потому, что соответствующая строка не найдена, либо потому, что изменение приведет к появлению строки, которая приводит удвоить записи в первичном ключе или уникальном вторичном индексе в таблице базы данных.

Оператор UPDATE устанавливает sy-dbcnt в число измененных строк.

0 голосов
/ 11 июля 2016

привет, я пытался создать таблицу с вашими ключами, как уже упоминалось, я советую вам использовать следующий синтаксис

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

Чтобы проверить, обновлена ​​ли таблица, вы можете использовать sy-dbcnt, чтобы узнать количество обновленных строк. Если проблема не устранена, прокомментируйте ниже

0 голосов
/ 30 августа 2011

Вы не можете «изменить» ключевые поля в базах данных. Вы можете удалить исходную запись и вставить новую с другим ключом. Но вы не можете изменить ключевое поле. (Я не могу проверить фактическое, если modify делает это самостоятельно.

Если вам нужно изменить ключевое поле, вам следует подумать о своем определении DB.

Подробнее об изменении ключевых полей: Можем ли мы обновить значения первичного ключа таблицы?

...