获取Dynamics CRM元数据

时间:2019-04-18 20:51:56

标签: sql-server dynamics-crm

我正在使用Microsoft Dynamics CRM 2016 Premise,我试图获取一些特定的元数据,基本上是通过SQL Server获取给定实体的字段物理名称,显示名称(标签)和字段值。这是我到目前为止的查询:

 select  a.PhysicalName, I.Label
 from  [dbo].[Attribute] a
 inner join [dbo].[Entity] e on e.EntityId=a.EntityId
 inner join [dbo].[LocalizedLabel] l on l.ObjectId = a.AttributeId
 where e.Name='DesiredEntityName'

通过此查询,我可以从给定实体获取字段和显示的标签,但是我看不到如何联接和获取每个字段的值列表的方法。

1 个答案:

答案 0 :(得分:0)

您必须从stringmap表中查询,所有选择列表(选项集)值都将存储在该表中。

SELECT AttributeValue as Value, Value as Label
FROM StringMap s
JOIN EntityLogicalView e on s.ObjectTypeCode = e.ObjectTypeCode
WHERE AttributeName = 'DesiredAttributeName'
AND e.Name = 'DesiredEntityName'
ORDER BY DisplayOrder

Retrieve Option Set Metadata Via SQL

编辑:

我现在知道你想要什么。将数据导出到Excel时,基本上您需要模仿Product在做什么。

使用数据库表或视图或过滤后的视图进行以下查询时,您希望显示名称为ALIAS。

SELECT name AS [Account Name], telephone1 AS [Business Phone]  from Account

问题可能是架构名称 telephone1在存储帐户记录数据的表中很容易获得,而显示名称 Business Phone是存储在多个不同的表中,例如实体,属性,LocalizedLabel

您可能必须做自己的视图或查询串联才能实现。