- SAP ABAP 教程
- SAP ABAP - 首页
- SAP ABAP - 概述
- SAP ABAP - 环境
- SAP ABAP - 屏幕导航
- SAP ABAP - 基本语法
- SAP ABAP - 数据类型
- SAP ABAP - 变量
- SAP ABAP - 常量和字面量
- SAP ABAP - 运算符
- SAP ABAP - 循环控制
- SAP ABAP - 决策
- SAP ABAP - 字符串
- SAP ABAP - 日期和时间
- SAP ABAP - 数据格式化
- SAP ABAP - 异常处理
- SAP ABAP - 字典
- SAP ABAP - 数据域
- SAP ABAP - 数据元素
- SAP ABAP - 表
- SAP ABAP - 结构
- SAP ABAP - 视图
- SAP ABAP - 搜索帮助
- SAP ABAP - 锁对象
- SAP ABAP - 模块化
- SAP ABAP - 子程序
- SAP ABAP - 宏
- SAP ABAP - 函数模块
- SAP ABAP - 包含程序
- SAP ABAP - Open SQL 概述
- SAP ABAP - Native SQL 概述
- SAP ABAP - 内部表
- SAP ABAP - 创建内部表
- ABAP - 填充内部表
- SAP ABAP - 复制内部表
- SAP ABAP - 读取内部表
- SAP ABAP - 删除内部表
- SAP ABAP - 面向对象
- SAP ABAP - 对象
- SAP ABAP - 类
- SAP ABAP - 继承
- SAP ABAP - 多态性
- SAP ABAP - 封装
- SAP ABAP - 接口
- SAP ABAP - 对象事件
- SAP ABAP - 报表编程
- SAP ABAP - 对话编程
- SAP ABAP - 智能表单
- SAP ABAP - SAPscript
- SAP ABAP - 用户出口
- SAP ABAP - 用户出口
- SAP ABAP - 业务附加功能 (Business Add-Ins)
- SAP ABAP - Web Dynpro
- SAP ABAP 有用资源
- SAP ABAP - 问答
- SAP ABAP - 快速指南
- SAP ABAP - 有用资源
- SAP ABAP - 讨论
SAP ABAP - 删除内部表
DELETE 语句用于从内部表中删除一条或多条记录。内部表的记录可以通过指定表键或条件来删除,也可以通过查找重复条目来删除。如果内部表具有非唯一键并包含重复条目,则会删除表中的第一个条目。
以下是使用 DELETE 语句从内部表中删除记录或行的语法:
DELETE TABLE <internal_table> FROM <work_area_itab>.
在上述语法中,<work_area_itab> 表达式是一个工作区,它应该与<internal_table> 内部表的类型兼容。删除操作是基于从工作区组件中获取的默认键进行的。
您还可以通过使用以下语法在 DELETE TABLE 语句中显式指定表键:
DELETE TABLE <internal_table> WITH TABLE KEY <K1> = <F1>………… <Kn> = <Fn>.
在此语法中,<F1>,<F2>…<Fn> 是内部表的字段,<K1>,<K2>…<Kn> 是表的键字段。DELETE 语句用于根据表达式 <K1> = <F1>,<K2> = <F2>…<Kn> = <Fn> 删除<internal_table> 表的记录或行。
注意 - 如果<F1>,<F2>…<Fn> 字段的数据类型与<K1>,<K2>…<Kn> 键字段不兼容,则 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,因为 ColP 值每次递增 4。
DELETE 语句用于删除 mytable 中 ColP 键字段的值为 1 或 3 的行。删除后,mytable 的 ColP 字段包含值 2、4、5、6、7 和 8,如输出所示。ColQ 字段包含值 6、8、9、10、11 和 12。
广告