SAP ABAP openSQL数据库操作(三)

SAP ABAP openSQL数据库操作(一)
SAP ABAP openSQL数据库操作(二)
SAP ABAP openSQL数据库操作(四)

文章目录

  • 4.数据更新
    • 1.INSERT
    • 2.UPDATE
    • 3.MODIFY
    • 4.DELETE
  • 5.数据一致性
    • 1.SAP LUW | DB LUW

4.数据更新

1.INSERT

1.单行插入数据
有两种格式,都是通过工作区的方式插入到数据库.
在插入的过程中,应该注意主键.

INSERT INTO dbtab VALUE wa.
INSERT INTO datab FORM  wa.

SAP ABAP openSQL数据库操作(三)_第1张图片
2.插入多行数据
通过内表的方式插入到数据库

INSERT INTO dbtab FORM TABLE itab.

注意要保持内表和数据库的结构一致.
SAP ABAP openSQL数据库操作(三)_第2张图片
如果至少一行数据没有插入成功,则会报运行时错误,且系统不会更新任何数据,可以使用下面格式.

SAP ABAP 运行时的错误控制 语法: CATCH SYSTEM-EXCEPTIONS

INSERT dbtab FORM TABLE itab ACCEPTING DUPLICATE KEYS.

ACCEPTING DUPLICATE KEYS这个语句表示的是如果主键出现相同的数据,此时SY-SUBRC = 4,系统则跳过该条目,并更新其他所有的条目

2.UPDATE

1.单行更新
WHERE的条件一般是主键.

UPDATE dbtab SET f1 = g1 f2 = g2.... WHERE <fix_key>

通过工作区更改单行数据.
使用工作区更新需要保证工作区的结构个数据库的结构是一致的,然后系统会根据工作区中关键字段的值定位该数据行,并非根据所有非关键字段的值将该行进行更新.

UPDATE dbtab FROM wa.

SAP ABAP openSQL数据库操作(三)_第3张图片
2.更新多行数据
使用setwhere同时更新多行.

UPDATE dbtab SET f1 = g1 f2 = g2....[ WHERE <condition> ]

where中此时可以不使用关键字段,她会将所有满足条件的全部更新.
如果不使用where将更新当前集团全部数据.
SAP ABAP openSQL数据库操作(三)_第4张图片
通过内表更新数据行

UPDATE target FROM TABLE itab.

3.MODIFY

这篇博客比较详细地介绍了modify的一下常用用法,大家可以做一个参考
abap MODIFY常用语法解析

MODIFY是SAP专有的语句,他相当于是INSERTUPDATE这两个语句的结合体.
在使用modify时如果数据库中存在则根据关键字进行修改操作;如果不存在就进行插入操作.
1.添加或更新单行

MODIFY dbtab FROM wa.

2.添加或更新多行
这个是按照内表的方式进行添加的,添加的原理和上述一样的.

MODIFY dbtab FROM TABLE itab.

4.DELETE

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. 

SAP ABAP openSQL数据库操作(三)_第5张图片
3.删除多有数据(“删除库跑路”)
通过内表删除多行数据,将内表置为空;
使用WHERE field LIKE '%' 作为唯一条件.

5.数据一致性

数据库的一致性和安全性的控制过程比较复杂.
多和客户服务器层次结构相关,abap中需了解LUM锁定概念,从而对一致性和安全性有所了解.

1.SAP LUW | DB LUW

比如我们常见的用户订单 商品库存 等是必须保持数据的一致性和安全性的,要不然很容易造成数据错误,造成严重的后果.

你可能感兴趣的:(OPEN,SQL,SAP,ABAP(总结),SAP,ABAP,编程教程,数据库,sql,SAP,abap,openSQL)