SSIS包手动运行正常但Windows任务计划程序执行不生效问题求助
SSIS包任务计划调用执行不全问题排查方案
核心报错根因说明
你遇到的8007007e 找不到指定的模块报错,本质是任务计划调用的SSIS运行环境与你手动运行包的环境不匹配,缺失对应数据库连接组件,导致执行到涉及SQL操作的后续步骤时加载组件失败。
分步排查指导
- 修正DTExec运行时位数
你当前bat中调用的是32位DTExec:
- 修正DTExec运行时位数
"C:\Program Files (x86)\Microsoft SQL Server\130\DTS\Binn\DTExec.exe" /f "E:\Third Party Supply Performance\CNMA_DATA_EXTRACTION\CNMA_3RDPARTY_SUPPLY_DATA_EXTRACT\CNMA_3RDPARTY_SUPPLY_DATA_EXTRACT\CNMA_DATA_EXTRACTION.dtsx"
先确认你开发SSIS包时的运行时配置:打开SSIS项目属性,进入「调试」选项卡,查看「Run64BitRuntime」的配置值。如果是True,把bat中的DTExec路径换成64位版本:
"C:\Program Files\Microsoft SQL Server\130\DTS\Binn\DTExec.exe" /f "E:\Third Party Supply Performance\CNMA_DATA_EXTRACTION\CNMA_3RDPARTY_SUPPLY_DATA_EXTRACT\CNMA_3RDPARTY_SUPPLY_DATA_EXTRACT\CNMA_DATA_EXTRACTION.dtsx"
保持运行时位数和开发时一致即可。
- 补全SQL连接驱动
报错中的CLSID对应SQL Server OLE DB访问接口组件,在任务计划运行的服务器上同时安装32位和64位版本的微软官方OLE DB Driver for SQL Server,避免适配问题,然后把SSIS包中连接管理器的驱动统一切换为MSOLEDBSQL,不要用系统自带的老旧SQLOLEDB驱动。
- 补全SQL连接驱动
- 校验任务计划权限配置
确认任务计划的运行账户和你手动运行的账户权限一致:
- 运行账户需要有E盘对应SSIS包、CSV文件目录的读写权限
- 运行账户需要有SQL Server的对应库表读写、临时表操作权限
- 任务计划安全选项勾选「不管用户是否登录都要运行」,不要勾选「不存储密码」,「配置」选项匹配当前服务器的Windows版本。
- 校验任务计划权限配置
- 修正临时表连接配置
如果你的临时表是会话级临时表,需要把SSIS包对应SQL连接管理器的RetainSameConnection属性设为True,避免不同执行步骤新建数据库会话,导致前一步创建的临时表后一步无法访问。
- 修正临时表连接配置
- 开启详细日志定位
在SSIS包属性中开启全事件日志输出到本地文本文件,可以精准定位到具体是哪一个执行步骤触发的报错,进一步缩小排查范围。
- 开启详细日志定位
内容的提问来源于stack exchange,提问作者manta ray
相关产品推荐
相关产品推荐

