INSERT:输入数据【数据库】
ACCEPTING DUPLICATE KEYS.(自动跳过已存在相同KEY值行)
1.把wa中的数据插入到数据库中。
2.每次插入一条记录。
3.Wa中字段的排列一定要和数据库中的字段排列一致。
INSERT INTO Z表 VALUES wa.:
INSERT INTO (动态Z表) VALUES wa.
INSERT Z表 FROM wa.
INSERT (动态Z表) FROM wa.
1.把itab内表中的数据插入到数据库中,也就是插入多条数据。
2.INSERT dbtab.:这条语句和上面的from wa相似,但是要在tables语句中声明这个数据库表,相当于dbtab是一个wa 。
INSERT INTO (动态Z表) VALUES wa.
INSERT INTO ZMARA VALUES @( AETIM = SY-UZEIT ) ).
INSERT dbtab FROM TABLE itab.
INSERT (dbtabname) FROM TABLE itab.
TYPES关键字支持通过INDICATORS选项
参考连接:https://help.sap.com/doc/abapdocu_755_index_htm/7.55/en-US/index.htm?file=abaptypes_indicators.htm
TYPES wa TYPE sflight WITH INDICATORS ind TYPE abap_bool.
DATA itab TYPE TABLE OF wa WITH EMPTY KEY.
SELECT carrid, connid, fldate, price
FROM sflight
WHERE carrid = char`LH` AND
connid = numc`0400` AND
fldate = @sy-datum
INTO CORRESPONDING FIELDS OF TABLE @itab.
IF sy-subrc = 0.
LOOP AT itab ASSIGNING FIELD-SYMBOL(<wa>).
<wa>-price *= '0.8'.
<wa>-ind-price = '01'.
ENDLOOP.
UPDATE sflight FROM TABLE @itab INDICATORS SET STRUCTURE ind.
ENDIF.
INSERT:插入数据【内表】
INSERT可以按内表的具体字段向表中插入一行或者多行数据:
INSERT [wa INTO| INITIAL LINE INTO] itab [INDEX idx]. "插入wa到itab的第idx行,itab表已有的第idx行,会往下走一行。
INSERT [wa INTO| INITIAL LINE INTO] TABLE itab. “插入wa到itab表
INSERT LINES OF itab1 [FROM idx] [TO idx2] INTO itab2 [INDEX idx3]. "把 itab1 的从 idx 到 idx2 行 插入到 表itab2 的第idx3行中。
INSERT LINES OF LT_STB2 FROM 1 TO GV_LINES INTO LT_STB3 INDEX GV_TANXI.
INSERT demo_join1 FROM TABLE @( VALUE #(
( a = 'a1' b = 'b1' c = 'c1' d = 'uu' )
( a = 'a2' b = 'b2' c = 'c2' d = 'uu' )
( a = 'a3' b = 'b3' c = 'c3' d = 'vv' )
( a = 'a4' b = 'b4' c = 'c4' d = 'ww' ) ) ).
COLLECT 汇总
TYPES:BEGIN OF TY_DATA,
ERNAM TYPE MARA-ERNAM,
NTGEW TYPE MARA-NTGEW,
END OF TY_DATA.
DATA:GT_ITAB TYPE STANDARD TABLE OF TY_DATA.
SELECT *
FROM MARA
INTO TABLE @DATA(GT_DATA).
LOOP AT GT_DATA INTO DATA(GS_SDATA).
COLLECT CORRESPONDING TY_DATA( GS_SDATA ) INTO GT_ITAB.
ENDLOOP.
DELETE 删除
根据索引删除内表的语法
delete itab [from wa ] [index idx].
使用表关键字来删除内表行可以应用所有类型的表
delete table itab from wa
删除邻近的重复行
sort itab by field1 field2
delete adjacent duplicates from itab [comparing field1 field2].
删除数据库表数据
DELETE <dbtab> [CLIENT SPECIFIED] FROM <wa>.
DELETE <dbtab> [CLIENT SPECIFIED] FROM TABLE <tab>.
DELETE FROM <dbtab> [CLIENT SPECIFIED] WHERE com1 = cond.