【问题标题】:Dynamics CRM - SQL query to get entity that lookup relates toDynamics CRM - 用于获取查找相关实体的 SQL 查询
【发布时间】:2019-04-15 10:36:18
【问题描述】:

在 CRM 数据库中,我在哪里可以找到与查找字段相关的实体的名称?

例如,我有一个 Account 实体,它包含两个查找字段;

  • Account Contact,指向Contact实体
  • 租赁设备,指向Equipment实体

如何获取每个字段相关的实体名称?

我希望在MetadataSchema.AttributeLookupValue 表中看到这个,但这似乎不是正确的地方。

理想情况下,我想为此信息编写一个查询。大致如下:

SELECT
    AttributeName,
    AttributeTypeName,
    ReferencedEntityName
FROM 
    unknown.TableName

WHERE
    AttributeName IN ('new_AccountContact', 'new_LeasedEquipment')

-- Results:
-- AttributeName        | AttributeTypeName | ReferencedEntityName
-- new_AccountContact   | lookup            | Contact
-- new_LeasedEquipment  | lookup            | Equipment

任何试图实现这一目标的帮助将不胜感激,谢谢。

【问题讨论】:

    标签: sql-server dynamics-crm dynamics-crm-2011 microsoft-dynamics


    【解决方案1】:

    下面的查询返回主要实体、查找字段名称和查找字段的目标实体类型。

        SELECT e.Name 'primary entity' , a.LogicalName 'lookup field in primary entity' , a.ReferencedEntityObjectTypeCode , e2.LogicalName as 'target entity of the lookup field'
        FROM MetadataSchema.Attribute a inner join MetadataSchema.Entity e on a.EntityId = e.EntityId
                                        inner join MetadataSchema.Entity e2 on a.ReferencedEntityObjectTypeCode=e2.ObjectTypeCode
        WHERE  ReferencedEntityObjectTypeCode <>0
        AND e.name='account'
    

    【讨论】:

    • 感谢您的建议,但这并没有给出与查找相关的实体的名称。相反,这给了我联系人实例的名称或租赁设备的名称。例如,如果我的联系人名为 John Smith,则此查询返回 John Smith,而不是返回 Contacts(查找字段相关的实体名称)。
    猜你喜欢
    • 1970-01-01
    • 2019-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多