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 值?

在VM虚拟机上安装Microsoft Dynamics CRM 2016 步骤图解及安装注意事项(转载)

在VM虚拟机上安装Microsoft Dynamics CRM 2016 步骤图解及安装注意事项