本文介绍了如何使用 SSIS Integration Services,通过 Foreach 循环文件枚举器将数据从多个 CSV、文本或平面文件加载到 SQL Server 表中,并附有示例。
为了演示 SSIS 将多个平面文件加载到 SQL Server 的过程,我们使用了下面显示的文本文件;我们的任务是将它们导出到一个表中。

SSIS 将多个平面文件加载到 SQL Server 的示例
将 Foreach 循环容器拖放到控制流区域。接下来,我们创建了两个字符串类型变量 FolderPath 和 FileName,用于存储文件夹路径和文件名。

双击它将打开编辑器。首先,将 SSIS 枚举器类型更改为 Foreach 文件枚举器。接下来,点击 Expression 旁边的浏览按钮。有关更多数据加载选项 >> 点击此处。
在“属性表达式编辑器”窗口中,选择“目录”作为属性,然后点击“表达式”。然后,将 User::FolderPath 拖到“表达式生成器”中的“表达式”,然后点击“确定”。

点击“确定”关闭“属性表达式编辑器”窗口。

在此 SSIS 将多个平面文件加载到 SQL Server 的示例中,我们想加载所有文本文件。因此,使用 *.txt 并选择“名称和扩展名”选项以检索包含扩展名的名称。

在“变量映射”选项卡下,选择 User::FileName 变量。它会将所有带有 txt 扩展名的文件名分配给此 User::FileName 变量。

将 SSIS 数据流任务添加到 Foreach 循环容器中,以将多个平面文件加载到 SQL Server 表中。

双击以打开 SSIS 数据流区域。然后,添加平面文件源并双击它以打开源编辑器。
点击“新建”按钮以打开“平面文件连接管理器”编辑器窗口。接下来,点击“浏览”按钮选择任意一个文本文件,以映射输入和输出列。

如果文件的第一行包含标题名称,请勾选“第一行数据名称”选项。

使用高级部分更改数据类型。此处,列数据类型必须与目标表匹配,否则会引发错误。

接下来,拖动 OLE DB 目标并双击它以打开编辑器。接下来,点击“新建”按钮来配置 OLE DB 连接管理器。此处,我们已选择现有。

从列表中选择表。如果没有,请点击新建按钮创建一个新的。

接下来,转到“映射”选项卡,检查输入和可用目标列的映射。

选择平面文件连接管理器,然后转到属性窗口。接下来,点击“表达式”旁边的浏览按钮。
选择 ConnectionString 作为属性。点击表达式并编写表达式。此处,我们通过组合或连接 FolderPath 和 FileName 变量来构建路径。

点击“确定”关闭“属性表达式编辑器”窗口。

运行 SSIS 包,使用 Foreach 循环枚举器将多个平面文件的数据加载到 SQL Server 表中。

现在,您可以在一个 SQL 表中找到所有四个文件的数据。
