使用 SSIS 将数据加载到 SQL Server 中的多个表
Posted
技术标签:
【中文标题】使用 SSIS 将数据加载到 SQL Server 中的多个表【英文标题】:Load data to multiple tables in SQL Server using SSIS 【发布时间】:2020-02-26 12:05:38 【问题描述】:我正在尝试了解如何从 SQL Server 中的多个表加载数据。
我在源数据库和目标数据库中有 30 多个表(都具有相同的表名和列),因此我使用 foreach 循环容器以 1 DFT 循环遍历每个表。我还有变量(SourceQuery 和 TargetQuery),它们保存要在 ole db 源/目标中使用的查询。
但是当我在 ole db 目标中使用 TargetQuery 时,我收到了这个错误:
有人知道在 ole db 目标中使用变量的正确方法吗?或者任何其他解决方案也很好。
【问题讨论】:
您的数据库中是否存在 ehs.asm_completion? 你不能用一个 DFT 加载 30 个不同的表。为此,您需要 30 个单独的 DFT。不幸的是,元数据在 SSIS 中必须是明确的。您的错误实际上看起来像是找不到表格。 顺便说一句,如果这是目标,您只需将目标放入:ehs.asm_completion
,而不是select * from ehs.asm_completion
。在尝试将其设为动态之前,您应该真的只为一张桌子工作。
@Nick.McDermaid 您是什么意思不能在数据流任务中加载 30 个表?我很确定这是最有效的方法。您显然不能使用单个源/目标,但可以添加多个。它们将并行运行。
【参考方案1】:
要复制 30 个表,我建议使用比使用数据流更高效的“传输 SQL Server 对象任务”组件
这里你可以看到如何传递变量
Transfer SQL Server Objects Task
【讨论】:
以上是关于使用 SSIS 将数据加载到 SQL Server 中的多个表的主要内容,如果未能解决你的问题,请参考以下文章
使用 SQL Server Integration Services (SSIS) 加载数据、键和索引
将超过 255 个字符从 excel 导入到 sql server(上一个问题 - 如何使用 ssis 将文本限定 CSV 动态加载到 sql server)
如何使用 SSIS 将 OTM 中的数据提取到 SQL Server 中?