「SAP ABAP」OPEN SQL的DML语句你了解多少 (附超详细案例讲解)
前言
DELETE语句介绍
ABAP DELETE语句用于操作删除数据库表中的数据。
PS:DELETE语句不支持使用内表来进行数据的删除!
删除单条数据
以下是删除单条数据
的一般语法样式:
DELETE FROM <table_name> WHERE <condition>.
DELETE <table_name> FROM <wa>.
参数介绍:
-
<table_name>
是要删除数据的数据库表的名称。 -
<wa>
:存放待删除数据的结构体变量(工作区)。 -
<condition>
:WHERE字句限定条件
使用结构体变量删除单条数据
下面给出一段以SFLIGHT数据库表
为基准的示例代码,对ABAP OPEN SQL中通过结构体变量DELETE
删除单条数据进行详细的讲解,仅供参考:
DATA:gs_sflight TYPE sflight.
gs_sflight-carrid = 'AC'.
gs_sflight-connid = 0820.
gs_sflight-price = 1600.
DELETE sflight FROM gs_sflight.
这段代码中首先参照数据库表sflight
定义了一个结构体变量,并且对结构体中的carrid
和connid
以及price
字段赋值,最后使用DELETE
语句在数据库表中找寻到与该结构体变量中数据相对应的数据条目对其进行删除。
PS:删除单条数据一般通过结构体变量赋值来删除,也可以使用只有一行数据的内表来删除。
使用WHERE字句删除单条数据
下面给出一段以SFLIGHT数据库表
为基准的示例代码,对ABAP OPEN SQL中通过WHERE子句
DELETE删除单条数据进行详细的讲解,WHERE可以通过设置多种条件来删除特定的数据条目:
DELETE FROM sflight
WHERE carrid = 'AC'
AND connid = 0820
AND price = 1600.
PS:上面介绍了两种可以实现删除单条数据的DELETE语句,它们都可以实现相同的效果!下面介绍删除多条数据的语句。
删除多条数据
PS:删除多条数据不再支持使用结构体变量来进行删除,可以使用WHERE子句来操作数据库表数据。
以下是删除多条数据
的一般语法样式:
DELETE FROM <table_name> WHERE <condition>.
参数介绍:
-
<table_name>
是要删除数据的数据库表的名称。 -
<condition>
:WHERE字句限定条件
使用WHERE字句删除多条数据
下面给出一段以SFLIGHT数据库表
为基准的示例代码,对ABAP OPEN SQL中通过WHERE子句
MODIFY操作单条数据进行详细的讲解,仅供参考:
DELETE FROM SFLIGHT WHERE PRICE = 1600 OR PRICE = 2100.
PS:这里的连接关键词需要用
OR
而不是AND
! ! !
MODIFY语句介绍 ABAP MODIFY语句用于操作增加或者修改数据库表中的数据。
PS:如果数据库表中不存在该条数据会增加条目,如果数据库表中存在该条数据会修改条目!
操作单条数据
以下是操作单条数据
的一般语法样式:
MODIFY <table_name> FROM <wa>.
MODIFY <table_name> FROM TABLE <itab>.
参数介绍:
-
<table_name>
是要操作数据的数据库表的名称。 -
<wa>
:存放待操作数据的结构体变量(工作区)。 -
<itab>
:存放待操作数据的内表。
使用结构体变量操作单条数据
下面给出一段以SFLIGHT数据库表
为基准的示例代码,对ABAP OPEN SQL中通过结构体变量
MODIFY操作单条数据进行详细的讲解,仅供参考:
* 更新旧条目
DATA:gs_sflight TYPE sflight.
gs_sflight-carrid = 'AC'.
gs_sflight-connid = 0820.
gs_sflight-fldate = '20020218'.
gs_sflight-price = 2500.
MODIFY sflight FROM gs_sflight.
* 插入新条目
gs_sflight-carrid = 'AC'.
gs_sflight-connid = 0820.
gs_sflight-fldate = '20230312'.
gs_sflight-price = 2500.
MODIFY sflight FROM gs_sflight.
PS:可以看到,修改了一个旧条目,并且新增了一个新条目,都是使用MODIFY语句完成的效果。
使用内表操作单条数据
下面给出一段以SFLIGHT数据库表
为基准的示例代码,对ABAP OPEN SQL中通过内表
MODIFY操作单条数据进行详细的讲解,仅供参考:
* 更新旧条目
DATA:gs_sflight TYPE sflight,
gt_sflight TYPE TABLE OF sflight.
gs_sflight-carrid = 'AC'.
gs_sflight-connid = 0820.
gs_sflight-fldate = '20020218'.
gs_sflight-price = 2500.
APPEND gs_sflight TO gt_sflight.
MODIFY sflight FROM TABLE gt_sflight.
* 插入新条目
gs_sflight-carrid = 'AC'.
gs_sflight-connid = 0820.
gs_sflight-fldate = '20230312'.
gs_sflight-price = 2500.
APPEND gs_sflight TO gt_sflight.
MODIFY sflight FROM TABLE gt_sflight.
PS:通过使用一条数据的内表来操作数据也可以达到与结构体变量相同的效果。
操作多条数据
MODIFY语句操作多条数据只能使用内表进行操作,不支持WHERE子句。
以下是操作单条数据
的一般语法样式:
MODIFY <table_name> FROM TABLE <itab>.
参数介绍:
-
<table_name>
是要操作数据的数据库表的名称。 -
<itab>
:存放待操作数据的内表。
使用内表操作单条数据
下面给出一段以SFLIGHT数据库表
为基准的示例代码,对ABAP OPEN SQL中通过内表
MODIFY操作多条数据进行详细的讲解,仅供参考:
* 更新旧条目
DATA:gs_sflight TYPE sflight,
gt_sflight TYPE TABLE OF sflight.
gs_sflight-carrid = 'AC'.
gs_sflight-connid = 0820.
gs_sflight-fldate = '20020218'.
gs_sflight-price = 2500.
APPEND gs_sflight TO gt_sflight.
* 插入新条目
gs_sflight-carrid = 'AC'.
gs_sflight-connid = 0820.
gs_sflight-fldate = '20230312'.
gs_sflight-price = 2500.
APPEND gs_sflight TO gt_sflight.
MODIFY sflight FROM TABLE gt_sflight.
这段代码和上方使用内表MODIFY
单条数据并没有太大的区别,只是删剪去了前面第一条的MODIFY语句,先向内表中插入了两条数据然后一起对数据库表进行操作。而上一段代码中是分别两次使用只有一行的内表对数据库表进行操作
,它们实现的效果是一样的!
写在最后的话
本文花费大量时间介绍了OPEN SQL中的DELETE语句和MODIFY语句的详细语法
,希望能帮助到各位小伙伴,码文不易,还望各位大佬们多多支持哦,你们的支持是我最大的动力!
相关文章
- SAP Spartacus 和 CDC 集成的 HTTP 请求明细
- SAP UI5 Responsive Grid Layout 里的 Label-Field Ratio 在屏幕类型 S 下的表现
- SAP 库存转移(Transfer Posting)
- 以前编写好能够正常运行的 SAP UI5 代码,几个月后忽然不能运行了该怎么办?
- SAP UI5 sap.ui.Device.media 的使用介绍
- 通过一个实际例子,理解 SAP UI5 sap.ui.model.odata.v2.ODataModel API 中 BindingContext 绑定上下文的概念和用法试读版
- [ChatGPT 勘误] SAP UI5 的 sap.ui.base.Object
- SAP Gateway Foundation Client Proxy 的使用方法
- 「SAP ABAP」你真的了解OPEN SQL的DML语句吗 (附超详细案例讲解)
- 关于 SAP UI5 接口 sap.ui.core.IAsyncContentCreation 的问题讨论
- 安装SAP,Linux获台前瞻未来(linux安装sap)
- SAP 自定义进度条详解编程语言
- sap透明表、结构、簇介绍以及查找表方法详解编程语言
- SAP ALV demo—-自用(新显示函数,不用自定义GUI状态)详解编程语言
- SAP MM(物料管理)常用事务代码T-Code详解编程语言
- SAP 如何定义后台job详解编程语言
- SAP ABAP Debug 小技巧详解编程语言
- ABAP写数据到SAP服务器文件并读取详解编程语言
- 比较:Oracle与SAP的对比(oracle和sap)
- Oracle从SAP抽取数据的简单方法(oracle从sap抽数)
- 缓存使用SAP创建Redis缓存,实现高效稳定加速(sap如何创建redis)
- Oracle与SAP权衡利弊比较之路(oracle与sap比较)
- 对比Oracle和SAP价格比较哪个是更值得投入的选择(oracle与sap价格)
- 展望未来Oracle与SAP的合作结盟前景(oracle、sap)
- Oracle与SAP金蝶谁更具竞争力(oracle sap金蝶)
- 聘请高级Oracle与SAP顾问,拓展业务潜力(oracle sap顾问)
- Oracle SAP系统深入探索管理系统之魅力(oracle sap系统)
- Oracle和SAP共同开创未来(oracle saps)