SAP ABAP openSQL数据库操作(一)
SAP ABAP openSQL数据库操作(二)
SAP ABAP openSQL数据库操作(四)
1.单行插入数据
有两种格式,都是通过工作区的方式插入到数据库.
在插入的过程中,应该注意主键.
INSERT INTO dbtab VALUE wa.
INSERT INTO datab FORM wa.
INSERT INTO dbtab FORM TABLE itab.
注意要保持内表和数据库的结构一致.
如果至少一行数据没有插入成功,则会报运行时错误,且系统不会更新任何数据,可以使用下面格式.
SAP ABAP 运行时的错误控制 语法: CATCH SYSTEM-EXCEPTIONS
INSERT dbtab FORM TABLE itab ACCEPTING DUPLICATE KEYS.
ACCEPTING DUPLICATE KEYS
这个语句表示的是如果主键出现相同的数据,此时SY-SUBRC = 4
,系统则跳过该条目,并更新其他所有的条目
1.单行更新
WHERE
的条件一般是主键.
UPDATE dbtab SET f1 = g1 f2 = g2.... WHERE <fix_key>
通过工作区更改单行数据.
使用工作区更新需要保证工作区的结构个数据库的结构是一致的,然后系统会根据工作区中关键字段的值定位该数据行,并非根据所有非关键字段的值将该行进行更新.
UPDATE dbtab FROM wa.
UPDATE dbtab SET f1 = g1 f2 = g2....[ WHERE <condition> ]
where中此时可以不使用关键字段,她会将所有满足条件的全部更新.
如果不使用where
将更新当前集团全部数据.
通过内表更新数据行
UPDATE target FROM TABLE itab.
这篇博客比较详细地介绍了modify
的一下常用用法,大家可以做一个参考
abap MODIFY常用语法解析
MODIFY
是SAP专有的语句,他相当于是INSERT
和UPDATE
这两个语句的结合体.
在使用modify
时如果数据库中存在则根据关键字进行修改操作;如果不存在就进行插入操作.
1.添加或更新单行
MODIFY dbtab FROM wa.
2.添加或更新多行
这个是按照内表的方式进行添加的,添加的原理和上述一样的.
MODIFY dbtab FROM TABLE itab.
1.删除单行数据
where必须指明全部主键
DELETE FROM dbtab WHERE <fix_key>.
或者
DELETE dbtab FROM wa.
2.删除多行数据
DELETE FROM dbtab WHERE <condition>.
通过内表删除多行
DELETE dbtab [CLIENT SPECIFED] FROM TABLE itab.
3.删除多有数据(“删除库跑路”)
通过内表删除多行数据,将内表置为空;
使用WHERE field LIKE '%'
作为唯一条件.
数据库的一致性和安全性的控制过程比较复杂.
多和客户服务器层次结构相关,abap中需了解LUM
和锁定
概念,从而对一致性和安全性有所了解.
比如我们常见的用户订单
商品库存
等是必须保持数据的一致性和安全性的,要不然很容易造成数据错误,造成严重的后果.