1. Append
在Loop循环中,可以向内表追加数据
-
追加单条数据后,SY-TABIX的值会发生变化,变为最后一行的索引 -
追加多条数据后,也是同样的结果 -
追加的数据在循环中会被读取
2. Insert
在Loop循环中,可以向内表插入数据
- 默认使用SY-TABIX作为插入的位置,即:Insert gs_itab Into gt_itab Index SY-TABIX.
- 原来内表中此行的数据会被挤到下一行(插入多条数据类似)
- 重点: 下次循环会跳到下下行(SY-TABIX+2), 不是下一行(SY-TABIX+1) (插入多条数据类似)
在循环中新插入的这一行不会被读取也就不能处理它(有时候需要使用这一特性)
若插入到SY-TABIX+1,那么新插入的这行就会在下个循环被读取
3. Delete
在循环过程中,可以删除内表的数据
- delete没有条件时,会默认使用SY-TABIX作为索引,删除内表中的当前行
- delete后,在下一个循环时,SY-TABIX值没有变,因为下一行上移了(注意不会跳过下行)
- 若用索引作为触发删除的条件时,从此索引开始及其后的行,都会被删除,因为SY-TABIX值没有变
4. Modify
在循环过程中,可以更新内表的数据
- modify时,不指定条件,也默认使用SY-TABIX,进行更新