VS2019环境下SSIS Execute SQL Task报0xC002F210错误求助
SSIS Execute SQL Task 固定触发COM注册表报错的排查与修复方案
故障核心识别
报错中Executing the query "" failed的空白查询占位、固定抛出CLSID恢复失败的0x80040153(REGDB_E_INVALIDVALUE)错误,可直接排除所有业务配置层面的问题:无论调整SQL语句、ResultSet属性、参数映射还是连接配置,都无法解决该故障,根因是系统注册表中SSIS依赖的COM组件注册值损坏。
分层排查修复步骤
1. 基础运行环境校验
- 确认Visual Studio 2019(16.8.3版本)安装的SQL Server Data Tools(SSDT)组件版本与SQL Server 2019 Developer Edition匹配,禁止使用跨版本SSIS模板(如VS2022生成的SSIS项目在VS2019中打开),避免COM组件映射错位
- 每次启动Visual Studio时选择以管理员身份运行,避免权限不足导致SSIS组件读取注册表时触发值校验失败
2. 关键COM组件重新注册
报错中CLSID {0EB5013B-538B-456B-AF1B-96DD1004026B} 对应SSIS运行时调用的OLE DB执行适配组件,触发REGDB_E_INVALIDVALUE的直接原因是该组件的注册值缺失或路径指向无效:
- 定位到系统OLE DB公共组件路径,一般为
C:\Program Files\Common Files\System\Ole DB\ - 以管理员身份打开命令提示符,依次执行重新注册命令:
regsvr32 "C:\Program Files\Common Files\System\Ole DB\oledb32.dll" regsvr32 "C:\Program Files\Common Files\System\Ole DB\sqloledb.dll"
3. 注册表异常值手动修复
- 打开系统注册表编辑器,定位到
HKEY_CLASSES_ROOT\CLSID\{0EB5013B-538B-456B-AF1B-96DD1004026B}路径 - 检查路径下
InprocServer32子项的默认值,确认其指向sqloledb.dll的实际完整路径;若值为空、指向不存在的文件,直接修正为合法的组件路径 - 检查该注册表项的访问权限,确认当前Windows登录用户拥有读取权限,权限缺失时补充对应读取权限后重启Visual Studio
4. 项目缓存清理
- 关闭所有打开的SSIS项目和Visual Studio进程
- 删除项目目录下的
.vs隐藏缓存文件夹、bin文件夹、obj文件夹 - 重新打开项目,新建空白的Execute SQL Task组件执行测试,不要复用之前已经触发报错的旧组件
5. 架构匹配校验
- 打开SSIS项目的属性页,检查Run64BitRuntime属性配置与当前环境的组件架构匹配:如果安装的是32位OLE DB驱动,需将该属性设置为
False,避免64位运行时读取32位注册表路径下的无效COM值 - 若安装过多个版本的SQL Server客户端组件,可通过SQL Server安装中心执行安装修复操作,还原所有公共COM组件的注册值,消除多版本路径覆盖导致的异常
内容的提问来源于stack exchange,提问作者Kontodimos Dimitris
相关产品推荐
相关产品推荐

