You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求获取Enterprise Architect对象PropertyTypeName的等效SQL查询

等效SQL查询获取EA元素的PropertyTypeName

要实现和eaElement.PropertyTypeName相同的功能,你需要结合t_attributes和t_objects表来查询——因为PropertyTypeName并非直接存储在单一表字段中,而是分两种情况处理:

  • 如果属性是自定义类型(比如模型内的类、枚举等),PropertyTypeName对应该类型元素的名称,需要通过属性的Type字段(存储类型元素的GUID)关联t_objects表获取;
  • 如果属性是内置类型(比如int、string),PropertyTypeName就是t_attributes表中Type字段的直接值。

示例SQL查询

假设你要获取指定对象(替换@ObjectID为目标元素的Object_ID)的所有属性及其PropertyTypeName:

SELECT
    -- 区分自定义类型和内置类型,返回对应的PropertyTypeName
    CASE
        WHEN a.Type LIKE '{%}' THEN o.Name
        ELSE a.Type
    END AS PropertyTypeName,
    a.Name AS PropertyName,
    a.Object_ID AS ParentObjectID
FROM t_attributes a
-- 左连接t_objects,处理自定义类型的关联
LEFT JOIN t_objects o ON a.Type = o.ea_guid
-- 过滤目标元素的属性
WHERE a.Object_ID = @ObjectID;

为什么之前的查询没找到?

PropertyTypeName是EA API封装后的计算值,并非数据库中直接存在的字段。你之前查询的t_objectproperties存储的是元素的自定义属性,t_objects存储元素本身,t_attributes存储属性的基础信息,但单独查这些表都无法直接得到封装后的PropertyTypeName,必须通过关联组合来实现。

内容的提问来源于stack exchange,提问作者Niramin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 22:01:18