ABAPにおけるDBへのDELETE操作は以下で行います。
★基本
*条件に合うレコードの削除
DELETE FROM [DBテーブルID] WHERE [条件].
*内部テーブルや構造を指定して削除
DELETE [DBテーブル] FROM TABLE [内部テーブルID].
DELETE [DBテーブル] FROM [構造ID].
上記でDBテーブルに対し、
条件を指定してDBテーブルからデータを削除したり、
内部テーブルないし構造を基にDBテーブルからデータを削除することができます。
★条件に合うレコード削除時の使用例
DELETE FROM ztest01 WHERE id = '0001'.
(※たとえば DELETE FROM ztest01 WHERE id LIKE '%'. のように条件にはワイルドカード使用可能。
上記の場合は全件削除される。使い方に注意)
IF sy-subrc = 0.
"Delete成功時処理
ELSE.
"Delete失敗時処理
ENDIF.
★条件に合うレコード削除時のイメージ

★内部テーブルを指定して更新する場合の使用例
DELETE ztest01 FROM TABLE lt_ztest01.
*(※構造の場合の例: DELETE ztest01 FROM ls_ztest01. )
IF sy-subrc = 0.
"Delete成功時処理
ELSE.
"Delete失敗時処理
ENDIF.
★内部テーブルを指定して更新する場合のイメージ

★Tips
*DELETE命令直後にsy-dbcntを見ることで何件DELETEされたかを評価することができます。
*それを踏まえてDELETE命令には成功したが対象が0件だった場合の判定を以下で記述できます。
DELETE FROM ztest01 WHERE id = '0001'.
IF sy-subrc = 0
AND sy-dbcnt > 0.
"Delete成功時処理
ELSEIF sy-subrc = 0
AND sy-dbcnt = 0.
"Delete結果が0件の場合の処理
ELSEIF sy-subrc <> 0.
"Delete失敗時処理
ENDIF.


