本文档介绍了如何使用脚本任务和 Foreach 循环文件枚举器,在将多个文件加载到 SQL Server 表后对其进行存档。
下图显示了目标文件夹中文件的总数。

SSIS 脚本任务:加载到 SQL Server 后存档文件示例
将 Foreach 循环容器拖放到控制流区域。接下来,我们创建了两个字符串类型的变量 SourcePath、DestinationPath 和 FilePath,用于存储源和目标文件夹路径。

双击打开编辑器。在此示例中,我们要加载所有文本文件。因此,使用 *.txt 并选择“完全限定”选项以检索名称和完整路径。
接下来,将枚举器类型更改为 Foreach 文件枚举器。然后,点击“表达式”旁边的浏览按钮。有关更多数据加载选项 >> 点击此处。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

运行包。

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