SSIS 将多个平面文件加载到 SQL Server

本文介绍了如何使用 SSIS Integration Services,通过 Foreach 循环文件枚举器将数据从多个 CSV、文本或平面文件加载到 SQL Server 表中,并附有示例。

为了演示 SSIS 将多个平面文件加载到 SQL Server 的过程,我们使用了下面显示的文本文件;我们的任务是将它们导出到一个表中。

Files

SSIS 将多个平面文件加载到 SQL Server 的示例

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

双击它将打开编辑器。首先,将 SSIS 枚举器类型更改为 Foreach 文件枚举器。接下来,点击 Expression 旁边的浏览按钮。有关更多数据加载选项 >> 点击此处。

在“属性表达式编辑器”窗口中,选择“目录”作为属性,然后点击“表达式”。然后,将 User::FolderPath 拖到“表达式生成器”中的“表达式”,然后点击“确定”。

SSIS Load Multiple Flat Files to SQL Server 4

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

Property Expressions Editor window

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

SSIS Load Multiple Flat Files to SQL Server 6

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

Assign Variable

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

Add data Flow Task

双击以打开 SSIS 数据流区域。然后,添加平面文件源并双击它以打开源编辑器。

点击“新建”按钮以打开“平面文件连接管理器”编辑器窗口。接下来,点击“浏览”按钮选择任意一个文本文件,以映射输入和输出列。

SSIS Load Multiple Flat Files to SQL Server Flat File Source

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

Checkmark the Column Names in the first data row

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

Advanced section to change the Data type

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

Use OLEDB Destination to configure the OLE DB Connection Manager

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

Choose Table to Load Multiple Flat Files Data to SQL Server

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

Check the input and available destination column mapping

选择平面文件连接管理器,然后转到属性窗口。接下来,点击“表达式”旁边的浏览按钮。

选择 ConnectionString 作为属性。点击表达式并编写表达式。此处,我们通过组合或连接 FolderPath 和 FileName 变量来构建路径。

Go to Flat File Connection manager Properties and Write Expression for ConnectionString Property

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

Close the Property Expressions Editor

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

Run SSIS Load Multiple Flat Files to SQL Server Package

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

Result Table