DELETE语句用于从内部表中删除一个或多个记录。通过指定表键或条件或通过查找重复条目来删除内部表的记录。如果内部表具有非唯一键并且包含重复条目,则将删除表中的第一个条目。
以下是使用DELETE语句从内部表中删除记录或行的语法:
DELETE TABLE

FROM.
在上述语法中,表达式是一个工作区,它应该与的类型兼容。内部表。基于可以从工作区组件获取的默认密钥来执行删除操作。
您还可以通过使用以下语法在DELETE TABLE语句中显式指定表键:
DELETE TABLEWITH TABLE KEY=…………=.在该语法中,,...是内部表的字段,,...是表的关键字段。 DELETE语句用于根据表达式=,=...=删除表的记录或行。
注意 - 如果,...字段的数据类型与,...关键字字段不兼容,那么SAP系统会自动将它们 转换为兼容格式。

实例

REPORT ZDELETE_DEMO. DATA: BEGIN OF Line1, ColP TYPE I, ColQ TYPE I, END OF Line1. DATA mytable LIKE HASHED TABLE OF Line1 WITH UNIQUE KEY ColP. DO 8 TIMES. Line1-ColP = SY-INDEX. Line1-ColQ = SY-INDEX + 4. INSERT Line1 INTO TABLE mytable. ENDDO. Line1-ColP = 1. DELETE TABLE mytable: FROM Line1, WITH TABLE KEY ColP = 3. LOOP AT mytable INTO Line1. WRITE: / Line1-ColP, Line1-ColQ. ENDLOOP.
上面的代码产生以下输出:
2 6 4 8 5 9 6 10 7 11 8 12
在这个例子中,mytable有两个字段,ColP和ColQ。最初,mytable填充有八行,其中ColP包含值1,2,3,4,5,6,7和8.ColQ包含值5,6,7,8,9,10,11和12。12,因为ColP值每次都增加4。
DELETE语句用于从mytable中删除colP键字段的值为1或3的行。删除后,mytable的ColP字段包含值2,4,5,6,7和8,如图所示在输出。ColQ字段包含值6,8,9,10,11和12。