【发布时间】:2017-08-14 09:24:10
【问题描述】:
我试图找出选项集描述在 CRM 数据库中的存储位置。上网查了一下,发现选项集数据是存储在StringMapSQL表中的,但是这个表中没有我想要的描述字段。
有谁知道选项集描述存储在 CRM 的 SQL 数据库中的什么位置?下面是突出显示我正在寻找的字段值的屏幕截图:
【问题讨论】:
标签: sql-server dynamics-crm-2011 dynamics-crm
我试图找出选项集描述在 CRM 数据库中的存储位置。上网查了一下,发现选项集数据是存储在StringMapSQL表中的,但是这个表中没有我想要的描述字段。
有谁知道选项集描述存储在 CRM 的 SQL 数据库中的什么位置?下面是突出显示我正在寻找的字段值的屏幕截图:
【问题讨论】:
标签: sql-server dynamics-crm-2011 dynamics-crm
试试这个:
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'
这适用于全局和非全局选项集,您只需将实体上的属性名称作为字段名(不是全局选项集的名称)。当然,如果只处理全局选项集,您不需要最后一次连接,只需执行 osw.Name = 'globaloptionsetname'
【讨论】:
这似乎有效:
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 并且位于 account 实体上,则 <OPTIONSET_NAME> 将替换为 'account_new_businesstypes'。<OPTIONSET_VALUE> 必须替换为您要查找的选项的整数值。在您的示例屏幕截图中,该值为 2。【讨论】: