Sql server SSIS ForEach文件循环-将文件名插入表
我正在构建一个SSIS包(使用VS2017)以从特定文件夹加载一组CSV文件。它使用ForEach文件循环非常有效。数据流任务具有平面文件源和OLE DB目标。我希望能够将文件名保存在同一个表中,以及CSV文件中的数据。我该怎么做Sql server SSIS ForEach文件循环-将文件名插入表,sql-server,ssis,Sql Server,Ssis,我正在构建一个SSIS包(使用VS2017)以从特定文件夹加载一组CSV文件。它使用ForEach文件循环非常有效。数据流任务具有平面文件源和OLE DB目标。我希望能够将文件名保存在同一个表中,以及CSV文件中的数据。我该怎么做 非常感谢您的时间和帮助ForEach文件枚举器可以捕获文件名并将其分配给变量,然后可以将其路由到连接管理器的连接字符串变量以进行动态加载。同样的方法也可用于将文件名写入数据库表 在数据流中,添加派生列转换并添加名为“FileName”(或其他名称)的新列,然后将其值设
非常感谢您的时间和帮助ForEach文件枚举器可以捕获文件名并将其分配给变量,然后可以将其路由到连接管理器的连接字符串变量以进行动态加载。同样的方法也可用于将文件名写入数据库表
在数据流中,添加派生列转换并添加名为“FileName”(或其他名称)的新列,然后将其值设置为ForEach文件枚举器为文件名设置的变量值。如果要加载平面文件的整个文件路径,另一种方法是
- 右键单击“数据流”选项卡中的平面文件源
- 单击“显示高级编辑器”
- 单击“组件属性”
- 在“自定义属性”下,您将找到“FileNameColumnName”
- 如果您提供一个名称(例如:FlatFileName),则该名称将显示为包含文件名值的映射中的一个源输出列(带文件名的完整路径)。它可以映射到目标中的任何可用列,也可以使用派生列任务进行修改以仅获取文件名
- 在连接管理器中单击鼠标右键
- 点击“新建连接”
- 选择“Multiplatfile”连接类型并单击添加
- 在连接管理器编辑器中,插入位置并使用通配符*(例如:\\ABC\XYZ\file.*.txt)拾取该文件夹中的所有平面文件
- 这会自动循环该文件夹中的所有平面文件李>
希望这有帮助 这在网上的许多例子中都有体现。请尝试一个并发回一个特定问题。就像这个,很高兴它起到了作用。@Dominic如果它解决了问题,你必须接受这个答案。检查