MODIFY는 **테이블의 데이터를 변경(수정)**하거나 **없으면 삽입(Insert)**도 해주는 명령어

 

1. DB 테이블에 MODIFY 하기

DATA: gs_scarr TYPE scarr.

gs_scarr-carrid = 'AA'.
gs_scarr-carrname = 'Modified Airline'.
gs_scarr-url = 'https://www.modified.com'.

MODIFY scarr FROM gs_scarr.

- 단일 행 수정(워크 에어리어 사용)

- scarr 테이블에서 carrid = 'AA'인 레코드를 찾아 수정함

- carrid = 'AA'가 없다면 새로 삽입된다. 

 

 

2. 여러 행 수정 (내부 테이블 사용)

DATA: gt_scarr TYPE STANDARD TABLE OF scarr,
      gs_scarr TYPE scarr.

gs_scarr-carrid = 'AA'.
gs_scarr-carrname = 'Modified AA'.
APPEND gs_scarr TO gt_scarr.

gs_scarr-carrid = 'AF'.
gs_scarr-carrname = 'Modified AF'.
APPEND gs_scarr TO gt_scarr.

MODIFY scarr FROM TABLE gt_scarr.

 

  • 내부 테이블 gt_scarr에 담긴 여러 개의 레코드를 한꺼번에 수정.
  • 마찬가지로, 없으면 추가됨.

 

4. 내부 테이블에서 MODIFY

DATA: gt_itab TYPE STANDARD TABLE OF scarr,
      gs_itab TYPE scarr.

READ TABLE gt_itab INTO gs_itab WITH KEY carrid = 'AA'.
IF sy-subrc = 0.
  gs_itab-carrname = 'Changed from loop'.
  MODIFY gt_itab FROM gs_itab INDEX sy-tabix.
ENDIF.
  • 내부 테이블에서 조건을 만족하는 값을 찾아서 수정.
  • MODIFY ... INDEX sy-tabix는 꼭 READ 결과의 인덱스를 써줘야 함.
문법 설명
MODIFY dbtab FROM wa. DB에서 키 값 기준으로 수정/삽입
MODIFY dbtab FROM TABLE itab. 여러 행 수정 or 삽입
MODIFY itab FROM wa INDEX n. 내부 테이블 n번째 수정

+ Recent posts