使用 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 中?

创建 SSIS 包 - 将数据从 Oracle 复制到 SQL Server

SSIS将数据从Excel导出到SQL Server表

无法使用 SSIS 将 SQL Server varchar(max) 传输到 MySQL 文本