Microsoft Dynamics CRM 在 SQL Server 中的何处存储 OptionSet 值?
Posted
技术标签:
【中文标题】Microsoft Dynamics CRM 在 SQL Server 中的何处存储 OptionSet 值?【英文标题】:Where does Microsoft Dynamics CRM store OptionSet values in SQL Server? 【发布时间】:2011-11-11 20:24:18 【问题描述】:我正在向 Microsoft Dynamics CRM 2011 进行数据迁移,需要针对源执行对帐以确保成功加载所有内容。
为此,我直接在 SQL Server 中查询 SQL,但我似乎无法找到 OptionSet 数据的存储位置。有谁知道它存储在哪个表中?
【问题讨论】:
您是在寻找选定的值还是文本表示? 【参考方案1】:这些都存储在 StringMapBase 表中。您将通过实体的对象类型代码、属性名称、选项集值和语言进行查询,这将为您提供属性的显示值。
【讨论】:
在 StringMapBase 中找到了数据,但需要先发布自定义内容。 很好,因为我不需要做任何连接。 查看 sarjanwebdev 关于使用下面的 FilteredStringMap 视图以避免 Microsoft 破坏性更改的答案。SELECT AttributeValue, Value FROM ORGNAME_MSCRM.dbo.StringMap WHERE AttributeName = 'CUSTOM_COLUMN_NAME'
替换 ORGNAME_MSCRM 和 CUSTOM_COLUMN_NAME。【参考方案2】:
只是一个提醒!使用 FilteredStringMap 继续得到微软的“支持”!
【讨论】:
FilteredStringMap 表是否已在较新版本中被替换?我正在尝试在 Dynamics Nav 2018 中检索执行类似的任务【参考方案3】:这是一个查询字符串映射的 SQL Server 函数
CREATE FUNCTION fn_new_GetStringMapValue
(
@AttributeName nvarchar(100),
@AttributeValue int
)
RETURNS nvarchar(4000)
AS
BEGIN
DECLARE @Result nvarchar(4000)
SELECT @Result = Value
FROM dbo.FilteredStringMap
WHERE AttributeName = @AttributeName AND AttributeValue = @AttributeValue
RETURN @Result
END
GO
【讨论】:
不支持修改 SQL 数据库以添加此类功能。如果您正在托管从另一个数据库读取 FilteredStringMap 的此函数,那么它是受支持的。在后一种情况下,您将使用 [ORGNAME_MSCRM].[dbo].[FilteredStringMap]以上是关于Microsoft Dynamics CRM 在 SQL Server 中的何处存储 OptionSet 值?的主要内容,如果未能解决你的问题,请参考以下文章
Microsoft Dynamics CRM OAuth 集成
Microsoft Dynamics CRM 安装后,windows有哪些服务是用来支持CRM运行的.
Intellisense in Visual Studio for Microsoft Dynamics CRM 2016
Microsoft Dynamics CRM 在 SQL Server 中的何处存储 OptionSet 值?