Instruction de mise à jour en ABAP ne fonctionne pas
J'ai un UPDATE
déclaration dans ABAP qui ressemble à :
UPDATE zicstt099 FROM TABLE lt_zicstt099
La mise à Jour échoue à chaque fois avec sy-subrc eq 4
.
La Table de base de données ZICSTT099
a trois clés primaires : WEB_USER_ID
& EMAIL_ID
avec MANDT
champ.
Je suis en train de changer la EMAIL_ID
de la valeur, mais le même n'est pas mis à Jour.
Aide gentiment.
OriginalL'auteur Rohit Sinha | 2011-08-30
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas changer les champs de clé primaire à l'aide de la
UPDATE <target> FROM <wa>.
etUPDATE <target> FROM TABLE <itab>.
états, car ils utilisent la clé primaire pour la recherche de l'enregistrement(s) ils doivent le mettre à jour.Utiliser le
UPDATE <target> SET <set1> ... WHERE ...
déclaration de la place.Vous pouvez trouver les détails ici: http://help.sap.com/abapdocu_70/en/ABAPUPDATE_SOURCE.htm#&ABAP_ALTERNATIVE_1@1@
OriginalL'auteur René
Vous ne pouvez pas changer la clé des champs dans les bases de données.
Vous pouvez supprimer votre inscription initiale et insérez-en une nouvelle avec une autre clé. Mais vous ne pouvez pas modifier un champ de clé. (Je ne peux pas vérifier réelle, si
modify
est de le faire sur son propre.Si vous devez modifier un champ de clé, vous devriez penser à votre base de données-définition.
Plus sur la modification de la clé des champs:
Peut-on mettre à jour des valeurs de clé primaire d'une table?
OriginalL'auteur knut
Si le sy-subrc = 4, alors au moins une ligne n'a pas pu être changé, soit parce qu'il n'y a pas de ligne a été trouvé, ou parce que le changement serait de générer une ligne qui conduit à des entrées en double dans la clé primaire ou unique index secondaire dans la table de base de données.
La déclaration de mise à JOUR des ensembles de sy-dbcnt pour le nombre de lignes modifiées.
OriginalL'auteur parachute
salut, j'ai essayé de créer la table avec vos clés, comme mentionné , je vous conseille d'utiliser la syntaxe suivante
Pour vérifier si la table est mise à jour que vous pouvez utiliser sy-dbcnt de connaître le nombre de lignes mises à jour.
si encore faire face à des questions s'il vous plaît commentaire ci-dessous
OriginalL'auteur Achuth hadnoor