SSISdynamic连接到源和目的地。

嗨,我想创build一个SSIS打包装载Excel文件到客户数据库。

我有100个客户数据库,我也有evrey新的一周100 excel文件(所有的数据库和文件具有相同的结构)数据库的名称是CustomerName和Excel文件名是CustomerName_date。

我想创build将每周运行一次ssis packge的作业,将把文件夹中的所有excel文件加载到客户数据库,并将文件传输到存档文件夹。

什么是最好的为什么dynamic连接到源和目的地。

这个任务可以使用variables和expression式来完成。 最困难的部分将是为OLE DB连接创build工作连接string。

1)为了处理文件夹中的每个文件,使用Foreach循环。

  • 集合”选项卡的循环编辑窗口中,select“Foreach File Enumerator”
  • select你的文件夹,使用wildcart过滤掉Excel文件(如果需要的话),然后selectFully qualified name
  • 创build用于存储文件path的variables,并在variables映射选项卡中select此variables。 (在每个循环中,新的文件path将被保存在这个variables中)。

2)创build基于你的一个Excel文件的新的Excel文件连接 ,右键单击它并在expression式中,为连接string创buildexpression式。 在expression式编辑器中,将其设置为使用yout文件variables。

3)然后我们需要为OLE DB连接创build连接string。

  • 创build一个新的variables来完成它。
  • 创buildOLE DB连接并将其连接到任何数据库。
  • 然后右键单击您的连接并在其他位置备份连接string,以便将来可以使用它。

4)在foreach循环中,创build脚本任务。

  • 在脚本任务编辑器中,selectReadOnlyVariables (您的文件名)和ReadWriteVariables (您准备好的连接string)
  • 单击编辑脚本,然后在新的VisualStudio窗口中创build您的脚本。
  • variables可以像这样读取和写入:

    string myValue =(string)Dts.Variables [“User ::”]。Value;

  • 您可以从fileNamevariablesparsingexcel名称,并为OLE DB创build新的连接string以匹配先前保存的连接string。

5)编辑您的OLE DB连接expression式并将连接string与variables匹配。

6)在foreach循环中,创build数据stream任务并双击它。 使用Excel来源并使其使用您的Excel连接。 然后创buildOLE DB目标并使其使用您的OLE DB连接。


使用这个答案作为一个build议,也许它会需要soma玩,才能工作。 但根据我的经验,这个方法应该可行。