當前位置:成語大全網 - 新華字典 - SAP怎麽往數據庫表添加數據

SAP怎麽往數據庫表添加數據

開源的數據庫操作都離不開INSERT、UPDATE、MODIFY和DELETE語句。其中當SY-DBCNT返回為0,則表示操作成功,此外還將返回實際操作的數據行數。需要指明的是Open?SQL本身並不進行操作權限的檢查,若需要進行設定,則要在系統中創建授權對象。

壹.INSERT語句

Open?SQL中的INSERT語句用於向數據庫中插入新條目。

1.插入單行數據:dbtab是內表,wa是工作區。

INSERT?INTO?dbtab?VALUES?wa.

INSERT?INTO?dbtab?FROM?wa.

內表:Internal?memory?table?內存中的表,是外設(屏幕、磁盤,打印機等)和數據庫表數據交換的中介。

wa為工作區,是與數據庫具有相同結構的數據對象,壹般直接基於數據庫結構聲明。該語句也可以將數據插入視圖中,首先該視圖所有字段必須來自同壹個數據庫表,而且在數據字典中的maintenance?status屬性必須設定為read?and?change

註:如果相同表關鍵字的數據條目已經存在,則不能重新插入,只能對非關鍵字進行更改(UPDATE,MODIFY)

2.插入多行數據:datab是內表,itab是表

INSERT?dbtab?FROM?TABLES?itab.

其中itab是內表,包含希望插入的數據條目。

註:內表應與數據庫的行結構壹致。

所有條目成功插入,則SY-SUBRC返回0

使用ACCEPTING?DUPLICATE可避免該錯誤。

INSERT?dbtab?FROM?TABLE?itab?ACCEPTING?DUPLICATE?KEYS.

ACCEPTING?DUPLICATE的效果是:若出現關鍵字相同,返回4,並跳過其再更新所有的其他。

二.UPDATE語句

1.更新單行數據:

UPDATE?dbtab?SET?f1=g1?...?fn=gn?WHERE?<fix_key>.

f表組建字段名,g為新設定的值,WHERE為確保只更新單行。

註:除f=g外還可?f=f+g、f=f-g

通過工作區更改單行數據:

UPDATE?dbtab?FROM?wa.

2.更新多行數據:

UPDATE?dbtab?SET?f1=g1?...?fi=gi?[WHERE?<conditions>].

也可以使用SET和WHERE子句同時更新多行數據值;此外不需要在WHERE中限定所有表關鍵字,該語句本身將更新所有滿足條件的數據條目,若不是用WHERE子句,則將更新當前數據集團中的所有數據行。

註:如果至少有壹行數據被更新SY-BUBRC返回0,否則返回4。

還可通過內表來更新多行數據:

UPDATE?target?FROM?TABLE?itab.

三.MODIFY語句

MODIFY語句是SAP的Open?SQL中專有語句,該語句相當於INSERT和UPDATE語句的結合。引入期的原因是當更新數據庫操作時,並不確知數據庫中是否遺憾相應的數據行。

1.添加或更新單行:

MODIFY?dbtab?FROM?wa.

註:操作後SY-SUBRC恒為0;SY-DBCNT為1

2.添加或更新多行:

MODIFY?dbtab?FROM?TABLE?itab.

內表itab將覆蓋數據庫表中具有相同主關鍵字的條目。

註:SY-SUBRC恒為0;SY-DBCNT返回行數

四.DELETE語句

1.刪除單行數據:

DELETE?FROM?dbtab?WHERE?<fix_key>.

或?DELETE?dbtab?FROM?wa.

其中WHERE必須指明全部表關鍵字段的值;wa為工作區,若不去dbtab匹配操作將失敗。

2.刪除多行數據:

DELETE?FROM?dbtab?WHERE?<condition>.

DELETE?dbtab[CLIENT?SPECIFIED]?FROM?TABLE?itab.

註:返回值同MODIFY

3.刪除多行數據:

兩種形式:1).通過內表刪除多行數據條目的過程中將內表置為空;2).使用WHERE?FIELD?LIKE?'%'。

資料來源:網頁鏈接