如何在MSCRM中获取选项集描述字段

时间:2017-03-22 10:18:01

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

我试图找到选项集描述存储在CRM数据库中的位置。在互联网上进行研究后,我发现选项集数据存储在StringMap SQL表中,但该表并不包含我想要的描述字段。

有谁知道存储在CRM的SQL数据库中的选项集描述存储在哪里?下面突出显示了我正在寻找的字段值:

enter image description here

2 个答案:

答案 0 :(得分:0)

这似乎有效:

 SELECT DISTINCT l.Label
 FROM MetadataSchema.LocalizedLabel l
 LEFT JOIN MetadataSchema.AttributePicklistValue ap ON l.ObjectId = ap.AttributePicklistValueId
 LEFT JOIN MetadataSchema.OptionSet os ON os.OptionSetId = ap.OptionSetId
 WHERE l.ObjectColumnName = 'Description' AND os.Name = '<OPTIONSET_NAME>' AND ap.Value = <OPTIONSET_VALUE>

上述脚本中有两个参数需要修改:

  • <OPTIONSET_NAME>必须替换为您的选项集的架构名称,并以实体的架构名称为前缀。例如,如果您的选项集名为 new_businessTypes 并且它位于帐户实体上,则<OPTIONSET_NAME>将替换为'account_new_businesstypes'
  • <OPTIONSET_VALUE>必须替换为您要查找的选项的整数值。在您的示例屏幕截图中,该值为2。

答案 1 :(得分:0)

试试这个:

SELECT Label FROM [LocalizedLabelView] llv
join [AttributePicklistValueView] apvv on llv.ObjectId = apvv.AttributePicklistValueId
join [OptionSetView] osw on apvv.OptionSetId = osw.OptionSetId
join [AttributeView] aw on osw.OptionSetId = aw.OptionSetId
where aw.Name = 'fieldname' and llv.ObjectColumnName = 'Description'

这适用于全局和非全局选项集,您只需将fieldname作为实体的属性名称(不是全局选项集的名称)。当然,只处理全局选项集,您不需要最后一次连接,只需执行osw.Name ='globaloptionsetname'