如何导出Microsoft Dynamics CRM 2016数据库中的附件文档?
Dynamics CRM 2016 附件导出方案建议
优先选择CRM原生功能导出,简便又合规
- 单附件导出:打开对应实体记录,找到「注释/附件」区域,选中目标附件点击下载即可直接保存为常规文件。
- 批量导出:
- 使用CRM自带的高级查找功能,选择「注释」实体(CRM附件默认存储在此实体的
documentbody字段)。 - 添加筛选条件定位到目标附件,点击「导出数据」选择导出为Excel(Excel会包含附件的Base64编码内容,但更高效的是用CRM批量导出工具或第三方合规插件,直接批量下载附件文件)。
- 使用CRM自带的高级查找功能,选择「注释」实体(CRM附件默认存储在此实体的
不推荐直接编写SQL脚本的原因
你遇到的「String or binary data would be truncated」错误,本质是CRM将附件转成Base64编码后存入VARCHAR(MAX)字段,直接用普通SQL脚本转换二进制时处理逻辑有误。即便写出正确的转换脚本,也存在以下问题:
- 示例转换逻辑(仅作技术参考,禁止用于生产环境):
DECLARE @Base64Content VARCHAR(MAX) DECLARE @BinaryContent VARBINARY(MAX) SELECT @Base64Content = documentbody FROM Annotation WHERE AnnotationId = '目标附件ID' SET @BinaryContent = CAST(N'' AS XML).value('xs:base64Binary(sql:variable("@Base64Content"))', 'VARBINARY(MAX)') -- 后续写入文件需依赖xp_cmdshell或CLR存储过程,权限管控复杂且有安全风险 - 直接操作CRM的SQL数据库违反微软支持协议,可能导致数据损坏、失去官方支持,批量处理时脚本复杂度高,出错概率大。
总结
少量附件直接在CRM界面下载最省心;批量导出时,用CRM原生工具或合规第三方插件,比编写SQL脚本更安全高效,还能规避数据库操作带来的各类风险。
内容的提问来源于stack exchange,提问作者JackAttack
相关产品推荐
相关产品推荐

