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

如何恢复MSCRM实体中数据库留存的已删除字段

恢复软删除的实体字段(解决字段名称重复无法新建的问题)

嘿,我之前在Dynamics 365里也碰到过一模一样的情况!当你从实体删除字段时,系统其实只是做了软删除——数据库里会保留这个字段的记录,只是标记为已删除状态,这就是为啥你想新建同名字段时会提示重复,但在解决方案的实体字段列表里又看不到它。下面是几个可行的恢复方法:

方法1:通过Power Platform管理中心恢复(最简便)

  • 登录Power Platform管理中心,找到你对应的环境
  • 进入「环境 > 资源 > Dynamics 365数据库」,点击「管理」按钮
  • 在弹出的页面里选择「恢复已删除的记录」,从下拉菜单中选中「实体字段」
  • 在搜索框输入你要恢复的字段逻辑名,找到对应的记录后勾选,点击「恢复」
  • 等待操作完成后,回到解决方案里刷新实体,就能看到这个字段重新出现在字段列表中了

方法2:使用Web API恢复(适合自动化或批量操作)

如果你习惯用API操作,可以调用Dynamics 365的Web API来恢复软删除字段:

  1. 构造POST请求:
POST [你的组织URI]/api/data/v9.2/EntityDefinitions(LogicalName='abc_salespersonname')/Attributes/Microsoft.Dynamics.CRM.RecoverDeletedAttribute
  1. 请求头需要包含:
Content-Type: application/json
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
  1. 请求体替换为你的字段逻辑名:
{
  "LogicalName": "你的字段逻辑名"
}
  1. 发送请求后,刷新实体元数据就能看到字段恢复了

方法3:直接操作数据库(仅限内部部署/有数据库权限的场景)

如果是内部部署环境且你有数据库操作权限,可以直接修改元数据:

  • 先查询找到软删除的字段记录:
SELECT * FROM MetadataSchema.Attribute
WHERE EntityId = (SELECT EntityId FROM MetadataSchema.Entity WHERE LogicalName = 'abc_salespersonname')
AND IsDeleted = 1
AND LogicalName = '你的字段逻辑名'
  • 拿到对应的AttributeId后,执行更新语句:
UPDATE MetadataSchema.Attribute
SET IsDeleted = 0
WHERE AttributeId = '查询到的字段GUID'
  • 最后刷新系统元数据(比如重启Dynamics 365服务,或在Power Apps里刷新解决方案),字段就会回到实体列表

注意事项

  • 恢复字段后,原来关联的表单、视图、业务规则等配置可能需要重新验证,因为软删除过程中这些关联可能被标记为无效
  • 生产环境操作前一定要做好数据备份,避免误操作影响业务数据
  • 所有操作都需要拥有系统管理员或系统定制员的权限才能执行

内容的提问来源于stack exchange,提问作者Tom Hanson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:46:25