You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CRM从2011升级到9.1后crmsvcutil执行SQL报错咨询

问题解答:CRM 9.1中crmsvcutil生成早期绑定代码失败问题

问题背景

上周将CRM组织从CRM 2011升级至CRM 9.1,使用crmsvcutil生成早期绑定代码时出现SQL错误,具体情况:

  • 在CRM 2011环境中运行crmsvcutil可正常执行;
  • 在升级后的CRM 9.1环境中运行失败,触发错误的SQL语句如下:
SELECT DISTINCT 
    E.EntityId, R.RelationshipId, 
    ERR.EntityRelationshipId, ERR.EntityRelationshipRelationshipsId,
    ERRole.EntityRelationshipRoleId, REC.ConditionId, 
    ALV.AttributeLookupValueId, VA.ViewAttributeId
FROM 
    EntityView E
INNER JOIN 
    RelationshipView R ON R.ReferencingEntityId = E.EntityId 
                       OR R.ReferencedEntityId = E.EntityId
INNER JOIN 
    EntityRelationshipRelationshipsView ERR ON ERR.RelationshipId = R.RelationshipId 
INNER JOIN 
    EntityRelationshipRoleView ERRole ON ERRole.EntityRelationshipId = ERR.EntityRelationshipId
LEFT OUTER JOIN 
    RelationshipExtraConditionView REC ON REC.RelationshipId = R.RelationshipId
LEFT OUTER JOIN 
    AttributeLookupValueView ALV ON ALV.AttributeId = R.ReferencingAttributeId 
                                 OR ALV.AttributeId = R.ReferencedAttributeId
LEFT OUTER JOIN 
    ViewAttributeView VA ON VA.RelationshipId = R.RelationshipId
WHERE 
    E.Name LIKE 'new_reserveentity_rp53fd1p1ekxpa%'

当前组织中不存在名为reserveentity或rp53fd1p1ekxpa的表或实体,现针对以下两个问题解答:

问题1:crmsvcutil为何需要查询该关联关系?

crmsvcutil的核心作用是根据CRM系统的元数据生成早期绑定的实体类,这要求它必须遍历所有实体及其关联关系,以此生成实体类之间的导航属性、关联逻辑等代码。

你看到的SQL语句中,new_reserveentity_rp53fd1p1ekxpa应该是一个升级过程中残留的无效自定义实体名称。工具在扫描系统元数据时,错误地识别到了这个不存在的实体的残留元数据,进而尝试查询其关联关系,由于该实体实际不存在,导致查询返回空结果,最终触发报错。

问题2:为何该工具在CRM 2011环境中可正常运行?

主要有两方面原因:

  1. 元数据处理逻辑差异:CRM 2011的元数据存储和查询逻辑相对宽松,对于已删除或无效的实体元数据条目,系统会自动忽略,crmsvcutil在扫描时不会强制校验这类残留记录的完整性;
  2. 升级导致的元数据不一致:CRM 2011中可能已经删除了该实体,但升级到9.1的过程中,部分关联元数据(比如关联关系、视图绑定记录)残留在EntityView、RelationshipView等系统视图中。而CRM 9.1版本的crmsvcutil对元数据的校验更严格,直接触发了这个隐藏的元数据异常。

额外解决建议

  • 检查CRM系统的元数据视图(比如EntityView、RelationshipView),手动清理包含new_reserveentity_rp53fd1p1ekxpa的残留记录;
  • 使用对应CRM 9.1版本的最新crmsvcutil工具,新版本可能修复了这类元数据扫描的兼容性问题;
  • 通过CRM的Power Platform Admin Center检查是否存在无效实体,使用官方工具清理冗余元数据。

内容的提问来源于stack exchange,提问作者Arnaud M. Smadja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 09:47:47