SSIS报错0x80040E14:数据流任务无法读取临时表数据
SSIS临时表读取失败问题解决方法
核心问题排查与解决步骤
- 检查连接管理器的
RetainSameConnection属性:你之前仅设置了Execute SQL Task的该属性,但真正控制连接复用的是连接管理器本身的配置。右键点击对应的OLE DB连接管理器,打开属性窗口,将RetainSameConnection设为True,确保整个包执行过程中使用同一个数据库连接。 - 调整Execute SQL Task的ResultSet设置:
select into语句不会返回结果集,若设置为Single Row,任务会因无法获取预期结果触发连接释放逻辑。建议直接将ResultSet改为None;如果必须保留Single Row,则在SQL语句末尾追加一行空结果语句,维持连接状态:select c1, c2,c3 into #TempTable from Source_Table; select 1 as DummyRow; - 关闭OLE DB Source的元数据验证:OLE DB Source在设计阶段会预编译SQL并验证对象存在性,此时临时表还未创建,会导致验证报错。编辑Data Flow中的OLE DB Source,切换到高级选项卡,将
ValidateExternalMetadata设为False,让验证仅在运行时执行。
原理说明
本地临时表#TempTable的作用域限定在当前数据库会话,只有保持同一个连接才能访问。上述配置确保了Execute SQL Task创建临时表后,Data Flow Task使用同一个连接读取数据,同时绕过了设计时的元数据验证冲突。
内容的提问来源于stack exchange,提问作者Tris
相关产品推荐
相关产品推荐

