ABAP: Tabellenzeile(n) löschen
Anbei das Coding um Zeilen aus einer Datenbank-Tabelle bzw. aus einer internen Tabelle zu löschen.
Zeile(n) löschen (DB Tabelle)
Anhand WHERE-Bedingung
Alle Zeilen löschen, die den WHERE
-Bedingungen entsprechen
DELETE FROM <dbtab> WHERE <cond>.
Anhand Struktur
Es werden alle Zeilen (meist nur eine) gelöscht, die dem Primärschlüssel der Struktur ls_tab
entsprechen
DELETE <dbtab> FROM <ls_tab>.
Anhand Tabelle
Erweiterung zum ls_tab
. Hier können eine Vielzahl an Zeilen gelöscht werden
DELETE <dbtab> FROM TABLE <lt_itab>.
Zeile(n) löschen (interne Tabelle)
Anhand WHERE-Bedingung
Alle Zeilen löschen, die den WHERE
-Bedingungen entsprechen
DELETE <itab> WHERE <cond>.
Anhand Struktur
Es werden alle Zeilen (meist nur eine) gelöscht, die dem Primärschlüssel der Struktur ls_tab
entsprechen
DELETE TABLE <itab> FROM <ls_tab>.
Anhand Index
Einträge können auch Anhand der Index-Nummer gelöscht werden.
LOOP AT gt_result INTO DATA(gs_search).
DATA(lv_tabix) = sy-tabix.
IF gs_search-sysid NE p_sapsys.
DELETE gt_result INDEX lv_tabix.
ENDIF.
ENDLOOP.
Doppelte Einträge
Doppelte Einträge löschen. Tabelle muss vorher sortiert worden sein, da nur nachfolgende Einträge geprüft werden.
DELETE ADJACENT DUPLICATE ENTRIES FROM <itab> [ COMPARING… ].