当定义内表为hashed table, unique key的时候,如果表里已经存在一条记录,你再insert相同主键的记录进去的时候,
结果是insert失败,SY-SUBRC = 4. 记录也不会被覆盖/增加,原数据不变.
START-OF-SELECTION.
DATA:BEGIN OF gs_mard,
matnr TYPE matnr,
labst TYPE mard-labst, "
insme TYPE mard-insme, "
END OF gs_mard.
DATA: gt_mard LIKE HASHED TABLE OF gs_mard WITH UNIQUE KEY MATNR.
SELECT * UP TO 1 ROWS
INTO CORRESPONDING FIELDS OF TABLE gt_mard
FROM mard.
LOOP AT gt_mard INTO gs_mard.
write / gs_mard-labst.
ENDLOOP.
gs_mard-labst = 998.
insert gs_mard into TABLE gt_mard.
WRITE: / 'after-----------'.
LOOP AT gt_mard INTO gs_mard.
write / gs_mard-labst.
ENDLOOP.
END-OF-SELECTION.