SSIS 脚本任务:加载到 SQL Server 后存档文件

本文档介绍了如何使用脚本任务和 Foreach 循环文件枚举器,在将多个文件加载到 SQL Server 表后对其进行存档。

下图显示了目标文件夹中文件的总数。

Files inside the local System Hard Drive

SSIS 脚本任务:加载到 SQL Server 后存档文件示例

将 Foreach 循环容器拖放到控制流区域。接下来,我们创建了两个字符串类型的变量 SourcePath、DestinationPath 和 FilePath,用于存储源和目标文件夹路径。

Add Foreach Loop Container

双击打开编辑器。在此示例中,我们要加载所有文本文件。因此,使用 *.txt 并选择“完全限定”选项以检索名称和完整路径。

接下来,将枚举器类型更改为 Foreach 文件枚举器。然后,点击“表达式”旁边的浏览按钮。有关更多数据加载选项 >> 点击此处

Choose File Enumerator in Foreach Loop Container

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

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

Property Expressions Editor

在“变量映射”选项卡下,选择 User::FilePath 变量。它会将所有带有完整路径的文件名分配给此 User::FilePath 变量。

Variable Mapping

添加数据流任务到 Foreach 循环容器

SSIS Script Task to Archive Files after Loading to SQL Server

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

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

Browse the File

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

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

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

SSIS Script Task to Archive Files after Loading to SQL Server

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

Check the input and available destination column mapping

脚本任务拖到 Foreach 循环容器中,并与数据流任务连接。

Add SSIS Script Task to Archive Files after Loading to SQL Server

双击打开编辑器。然后,单击“只读变量”属性旁边的 … 按钮,并选择路径的用户变量。接下来,单击“编辑脚本”按钮。

Edit Script

编写以下 C# 代码以在将文件加载到 SQL Server 后存档它们。然后,关闭 c# 脚本窗口,并单击“确定”关闭脚本转换编辑器。

C# Code for SSIS Script Task to Archive Files after Loading to SQL Server

选择平面文件连接管理器,然后转到“属性”窗口。接下来,单击“表达式”旁边的浏览按钮,并选择“连接字符串”作为属性。然后,单击“表达式”并编写表达式。

File Connection Manager Properties

此处,我们选择 FilePath 变量。单击“确定”关闭“属性表达式编辑器”窗口。

Choose the Expression

运行包。

Run SSIS Script Task to Archive Files after Loading to SQL Server

所有四个员工文本文件都已从“已移动”文件夹存档并移动到“目标”文件夹。

Folders