1. 程式人生 > >ABAP資料庫操作之更新資料

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子句中的唯一條件。