各种视图类型的创建方法和区别

一、视图类型概述

1. 数据库视图(Database View)

  • 技术类型:D
  • 描述:在数据库层创建的视图,基于透明表
  • 特点
    • 直接映射到数据库
    • 支持多表连接(最多5个表)
    • 支持读写操作(有限制)

创建方法

abap 复制代码
SE11 → 选择 "视图" → 输入视图名 → 选择 "数据库视图"
1. 输入基表
2. 定义表间连接关系
3. 选择输出字段
4. 设置选择条件(可选)
5. 激活视图

2. 投影视图(Projection View)

  • 技术类型:P
  • 描述:单个表的字段子集
  • 特点
    • 只能基于单个表
    • 主要用于屏蔽不需要的字段

创建方法

abap 复制代码
SE11 → 选择 "视图" → 输入视图名 → 选择 "投影视图"
1. 输入基表
2. 选择需要投影的字段
3. 维护表字段的技术属性

3. 维护视图(Maintenance View)

  • 技术类型:C
  • 描述:用于SM30维护的视图
  • 特点
    • 支持多表连接
    • 自动生成维护对话框
    • 需要表有外键关系

创建方法

abap 复制代码
SE11 → 选择 "视图" → 输入视图名 → 选择 "维护视图"
1. 定义表和连接关系
2. 设置外键连接
3. 创建维护对话框(SE54)

4. 帮助视图(Help View)

  • 技术类型:H
  • 描述:用于F4帮助的搜索帮助
  • 特点
    • 已基本被搜索帮助(Search Help)取代
    • 需要表有外键关系

二、特殊视图类型

5. CDS视图(Core Data Services)

  • 新一代数据建模技术
  • 类型
    • CDS DDIC视图:ABAP CDS
    • CDS实体视图:HANA CDS

创建方法

abap 复制代码
// ABAP CDS视图示例
@AbapCatalog.sqlViewName: 'ZCDS_VIEW'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'CDS View Example'
define view Z_CDS_View as select from sflight {
  key carrid,
  key connid,
      seatsmax,
      seatsocc,
      @Default: 0
      seatsmax - seatsocc as seatsfree
}

创建步骤

  1. ABAP CDS:ADT(Eclipse)中创建
  2. HANA CDS:HANA Studio中创建

6. 视图簇(View Cluster)

  • 技术类型:V
  • 描述:多个视图的逻辑组合
  • 特点:用于复杂的数据结构

三、创建方法对比

视图类型 事务码 基于表数 主要用途 更新能力
数据库视图 SE11 1-5个 报表、查询 有限更新
投影视图 SE11 1个 字段筛选 可更新
维护视图 SE11 多个 SM30维护 完全可维护
帮助视图 SE11 多个 F4帮助 只读
CDS视图 ADT/Eclipse 多个 高性能查询 只读

四、代码示例

1. 数据库视图示例

abap 复制代码
* 在SE11中创建数据库视图 ZDB_VIEW
* 表连接: MARA + MAKT
* 字段: MATNR, ERSDA, ERNAM, MAKTX
* 条件: SPRAS = SY-LANGU

2. 维护视图示例

abap 复制代码
* 创建维护视图 ZMAINT_VIEW
* 表: ZCUSTOMER, ZORDER
* 通过外键连接
* 生成维护对话框后可在SM30维护

3. CDS视图编程示例

abap 复制代码
@AbapCatalog.sqlViewName: 'ZCDS_SFLIGHT'
define view ZCDS_FlightInfo as select from sflight 
  inner join scarr on sflight.carrid = scarr.carrid
{
  key sflight.carrid,
  key sflight.connid,
      sflight.fldate,
      sflight.price,
      scarr.carrname,
      sflight.currency as curr
}
where sflight.planetype = '747';

五、创建决策指南

如何选择视图类型?

  1. 简单字段筛选 → 投影视图
  2. 多表查询 → 数据库视图
  3. 数据维护界面 → 维护视图
  4. 高性能分析 → CDS视图
  5. F4帮助 → 搜索帮助(代替帮助视图)

注意事项:

  1. 性能:数据库视图在数据库层执行,CDS视图有优化
  2. 维护:维护视图自动生成维护程序
  3. 兼容性:CDS需要SAP NetWeaver 7.4+
  4. 连接限制:数据库视图最多5个表

六、最佳实践

  1. 命名规范

    • 视图:Z/Y 开头
    • CDS视图:Z_ 前缀
    • 维护视图:ZMAINT_ 前缀
  2. 性能优化

    abap 复制代码
    * 使用SELECT语句验证视图性能
    SELECT * FROM zdb_view INTO TABLE @itab
      WHERE matnr IN @s_matnr.
  3. 权限控制

    • 数据库视图:通过基表权限控制
    • CDS视图:使用DCL(Data Control Language)
  4. 测试建议

    • 验证视图选择性能
    • 测试更新操作(如适用)
    • 检查锁机制(维护视图)
相关推荐
Aloudata技术团队1 小时前
完美应对千亿级明细数据计算:Aloudata CAN 双引擎架构详解
数据库·数据分析·数据可视化
Dxy12393102161 小时前
MySQL连表查询讲解:从基础到实战
数据库·mysql
DemonAvenger1 小时前
Redis数据迁移与扩容实战:平滑扩展的技术方案
数据库·redis·性能优化
毕设十刻1 小时前
基于Vue的民宿管理系统st4rf(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js
人工智能知识库2 小时前
2026年HCCDP-GaussDB工作级开发者题库(详细解析)
数据库·华为·gaussdb·题库·hccdp-gaussdb·工作级开发者认证
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ2 小时前
sql 如果字段为空就用另一个字段
数据库·sql
一人の梅雨2 小时前
亚马逊SP-API商品评论接口实战:情感分析+商业洞察挖掘的差异化方案
运维·前端·数据库
qq_435139572 小时前
多级缓存(Caffeine+Redis)技术实现文档
数据库·redis·缓存
程序修理员2 小时前
oracle备份表还原
数据库·oracle
科创致远2 小时前
国内ESOP电子作业系统头部企业格局与科创致远技术发展历程
大数据·数据库·人工智能·嵌入式硬件·精益工程