【问题标题】:How to load multiple files in ssis如何在ssis中加载多个文件
【发布时间】:2025-11-26 16:45:01
【问题描述】:

我对 ssis 很陌生!

我想知道以下内容。

如何使用 ssis 任务将多个文件加载到 sql-server 中?

我目前正在研究数据仓库。我有一堆文件,每个文件都在不同的文件夹中

the folders are

Myfolder
  ->subfolder_21-03-2009.txt
  ->Mysubfolder_21-03-2009.txt
Myfolder1
  ->subfolder_22-03-2009.txt
  ->Mysubfolder_22-03-2009.txt
Myfolder2
  ->subfolder_23-03-2009.txt
  ->Mysubfolder_23-03-2009.txt

我可以使用foreachloop In ssis 将Subfolder.*.txt 加载到sql-server DB(表1)中。

现在有人可以告诉我如何将mysubfolder.*.txt 加载到 Sql-server(table 2) DB 中

我想在一个进程中将多个文件加载到 sql-server。

please somebody guide me !

【问题讨论】:

  • 你能给我们看看包/代码吗?
  • 包只是一个for每个循环。 Dft 使用 String 变量将平面文件加载到 db 中进行迭代,但需要知道如何制作一个可以将 2 个或更多不同文件分别加载到 2 个或更多表中的包
  • 我有类似的问题,所以我开始研究这个问题:)
  • Import text files 重复,但由于赏金而无法关闭
  • @billinkc : 我不想使用 BIDS 助手...我只在 SSIS 中使用它!

标签: sql-server ssis


【解决方案1】:

I am currently working on datawarehouse. i have a bunch of files each in separate folders

看到这个你需要参考这个answer你也可以check this

this

this is quite helpful you can take a look here

要回答上面的问题,您得到了一个依次执行任务的序列容器:

快照 1

快照 2

您可能想提供 Mysubfolder.*.txt

快照 3

在数据流任务中您可能会这样做

【讨论】:

  • 谢谢你!我做了同样的方式..上面有没有其他选择,只是为了知识:)
【解决方案2】:

您已经在每个文件夹中都有一个“ForEachLoopContainer”循环以加载表 1 中的“subfolder_*.txt”。

为什么不在每个文件夹中创建第二个“ForEachLoopContainer”循环以加载表 2 中的“Mysubfolder_*.txt”?

然后将这两个“ForEachLoopContainer”放入一个序列容器中就完成了。

【讨论】:

    【解决方案3】:

    如果是文件目录。使用ForEach Loop 容器枚举目录中的所有文件;因为您有子文件夹,所以您必须单击“遍历子文件夹”选项。接下来,您需要将Data Flow Task 放入您的ForEach Loop 容器中。在Data Flow Task 中,您需要添加Flat File Source。然后你需要在你的Flat File Source 之后添加一个Derived Column 转换。在您的Derived Column 中,您需要将用于循环遍历目录的变量添加到“派生列名称”中;在“派生列”中输入“添加为新列”,在“表达式”中,您将使用FindString 表达式或LEFT/RIGHT 表达式的组合从文件名中获取日期。然后在您的 OLE DB Destination 对象中,您需要将派生列映射到 SQL-Server DB 中的相对列。

    FINDSTRING:http://technet.microsoft.com/en-us/library/ms141748.aspx

    LEFT/RIGHT:http://technet.microsoft.com/en-us/library/hh231081.aspx

    【讨论】:

    • 嗯..这不是我需要的人,我在我的问题上赞成你的其他答案!但这对我没有帮助,你能不能再看看上面的问题......谢谢!
    • 您是否检查了 ForEach 循环容器中的“遍历子文件夹”选项?
    【解决方案4】:

    我想检查将 3 个不同格式的文件加载到 3 个单独的表中。假设我有 3 个以日期为后缀的文件 A、B、C,并且每天都在变化。这就是我所做的。

    创建一个 ForEach 循环容器并设置 Collection 标签如下。

    让我们使用每个文件连接管理器的表达式使文件名日期部分动态化。

    最终的包如下所示。

    瞧!这些表是从各自的文件中加载的。

    显然,这可以通过使用 Foreach 文件枚举器在变量中获取文件的完全限定名,然后编写一个表达式来解析它以将其转换为不同的 DFT 来细化。希望这会有所帮助。

    【讨论】:

      最近更新 更多