data : gt_ztm012 like ztqm0012.
data : gs_ztm012 like gt_ztm012 occurs 0 with header line.
update qapp
set vcode = i_spec-vcode
where prueflos = itab-prueflos
and userc1 = i_spec-userc1.
gt_ztm012-matnr = itab-plnbez.
~
gt_ztm012-desc5 = i_spec-desc5.
modify ztqm0012 from gt_ztm012.
commit work.
update를 할때 아래와 같이 하면 데이터가 지워지고 위와 같이 처리해야
데이터가 들어 가는데 왜그런지 이해가 되지 않습니다.
abaP에서 UPDATE와 INSERT를 많이 처리해보지 않아 이해가 잘 안됩니다.
고수님들의 의견을 듣고 싶습니다.
UPDATE ZTQM0012
SET NAME = I_SPEC-VNAME
~
DESC5 = I_SPEC-DESC5
WHERE PRUEFLOS = ITAB-PRUEFLOS
AND
commit work.
댓글 5
-
e-abap
2008.03.22 02:29
-
옆집남자
2008.03.22 03:25
update를 할때 아래와 같이 하면 데이터가 지워지고 위와 같이 처리해야
아무리 봐도 delete 는 없는데 데이타가 지워진다뇨.ㅋㅋ
질문을 해도 정리해서 해주세요.
글구. 위소스처럼 간단한 것은 f1 번을 눌러보세요...쉽게 해결 됩니다.
허접 생각 쓰고 갑니다.
-
루자빗
2008.03.24 17:33
UPDATE 는 키 값이 일치하는 경우 SET 에 걸려있는 필드들의 내용을 변경해주지만, 키값이 일치하는 데이터가 없는 경우에는 UPDATE를 실행하지 않습니다. 디버깅 모드에서 SY-SUBRC 값을 확인해보세요. 0 이아닌 값이 떨어지는 경우에는 INSERT 를 해 주시거나 MODIFY 를 해 주셔야 할겁니다. -
r333
2008.03.24 18:17
e-abap님 좋은거 하나 배우고 갑니다^^ -
풍뎅이
2008.03.24 19:04
답변 감사드립니다.
modify 구문은 INSERT 와 UPDATE 기능이 합해진 기능입니다.
즉, 키값에 해당하는 데이터가 있으면 UPDATE 하고 없으면 INSERT 합니다.
첫번째 구문에는 MODIFY 구문이 있네요~