🔥 ABAP DELETE 문이란?

  • 데이터베이스 테이블의 레코드를 삭제하는 명령어
  • 신중히 써야 해! 잘못 쓰면 테이블 전체 레코드가 삭제될 수도 있음!

✅ 기본 문법

1. 🔸 특정 레코드 삭제 (기본 키 기준)

 
```
CLEAR wa_employees. wa_employees-employee = '10000007'. " 기본 키만 세팅 DELETE zemployees FROM wa_employees.
```
  • wa_employees 구조체의 **기본 키 값(employee)**에 해당하는 레코드만 삭제.
  • sy-subrc = 0 → 삭제 성공
  • sy-subrc ≠ 0 → 실패 (예: 해당 키의 레코드 없음)

2. 🔸 조건 삭제 (WHERE 사용)

abap
CopyEdit
DELETE FROM zemployees WHERE surname = 'BROWN'.
  • surname이 'BROWN'인 모든 레코드 삭제
  • 여러 개 삭제 가능!

3. 🔥 전부 삭제 (❗주의❗)

abap
CopyEdit
DELETE FROM zemployees.
  • 테이블의 모든 레코드 삭제 😱
  • 실수로 쓰면 큰 문제가 생길 수 있으니 정말 조심해야함

💡 DELETE 문 흐름 예시

  1. 기본 키로 삭제
    • employee = '10000007' 인 레코드 1개 삭제
  2. 조건으로 삭제
    • surname = 'BROWN' 인 레코드 여러 개 삭제
  3. 테이블 전체 삭제
    • 실습에서는 하지 않았지만, 문법은 존재

📌 리턴 코드 sy-subrc


의미
0 삭제 성공
4 해당 조건의 레코드 없음

🚨 주의사항

  • 항상 sy-subrc를 체크해서 정상 동작했는지 확인해야함
  • DELETE FROM 전체 삭제는 절대 주의!!
  • CLEAR 구문으로 워크에어리어 초기화하는 습관도 중요

🧠 결론 요약

  • 기본 키 삭제 → DELETE FROM tab FROM wa
  • 조건 삭제 → DELETE FROM tab WHERE field = 'value'
  • 전체 삭제 → DELETE FROM tab. → 사용 주의!
  • ✔ 항상 sy-subrc 체크하기
  • ✔ CLEAR 문으로 워크에어리어 초기화 습관 들이기

 

DELETE FROM ... FROM wa 특정 키 값 레코드 삭제
DELETE FROM ... WHERE 조건에 해당하는 레코드 삭제
DELETE FROM ... 테이블 전체 삭제

 

 

 

✅ 1. 첫 번째 DELETE FROM zemployees FROM wa_empl.

abap
CopyEdit
wa_empl-employee = '1000012'. DELETE zemployees FROM wa_empl.

이 경우는 employee = '1000012' 인 레코드가 실제로 존재해서 삭제 성공했기 때문에
→ sy-subrc = 0이 되는 거야.
즉, 삭제 성공 = sy-subrc가 0


❌ 2. 두 번째 DELETE FROM zemployees WHERE surname = 'BROWN'.

abap
CopyEdit
DELETE FROM zemployees WHERE surname = 'BROWN'.

여기서는 surname = 'BROWN'인 레코드가 존재하지 않았기 때문에,
삭제할 게 없어서 아무 일도 안 일어났고,
→ 그 결과 **sy-subrc = 4**가 된 거야.


🔢 SY-SUBRC 값 정리:

SY-SUBRC 값의미
0 작업 성공 (레코드 삭제됨)
4 작업 실패 (삭제할 레코드 없음 등)

 

🔢 table entries delete

 

결과:

- No table entries found for specified key

: 모든 데이터가 사라졌다!

+ Recent posts