ABAP数据库操作之更新数据

1,insert语句:插入数据。

<1>,单行插入:insert into dbtab values wa.

                            insert into dbtab form wa.

工作区wa是与数据表具有相同结构的数据对象,insert语句操作后,如果相同表关键字的数据条目已存在,则不能重新插入,只能对该行的非关键字数值进行更改(可使用update或modify语句)。

<2>,多行插入:通过内表向数据库插入多行数据

insert dbtab from table itab.

若至少有一条不能插入,避免运行是错误,可使用下列格式:

insert dbtab from table itab accepting duplicate keys.

其中accepting duplicate keys选项作用是:如果出现关键字相同条目,sy-subrc返回4,并跳过该条目,更新所有其他条目。

2,update语句:更新数据。

<1>,单行更新:update dbtab set f1 = g1 ... fn = gn where <fix_key>.

f1为表组件字段名,g1为新设定的值,fix_key为表关键字段的值(单行更新必须在where中指明全部表关键字段的值)。

<2>,多行更新:update dbtab set f1 = g1 ... fn = gn [ where <conditions> ].此处不需要在where中限定所有表关键字段。

或者使用内表来更新:update target from table itab.

3,modify语句:若数据库中已存在,则进行更新,不存在,则进行插入。

<1>,单行添加或更新:modify dbtab from wa.

<2>,多行添加或更新:modify dbtab from table itab.

4,delete语句:删除数据。

<1>,单行删除:delete from dbtab where <fix_key>. (必须在where中指明全部表关键字段的值)。

或:delete dbtab from wa.

<2>,多行删除:delete from dbtab where <conditions>.

或通过内表:delete dbtab [client specified] from table itab.

<3>,删除所有:有两种方式实现

* 在通过内表删除多行数据条目的过程中将内表置为空。

* 使用where field like '%' 作为where子句中的唯一条件。

猜你喜欢

转载自blog.csdn.net/LittleMangoYX/article/details/80405759