SSIS ForEach循环 - 更改for循环内的连接

时间:2013-05-10 22:27:37

标签: sql-server sql-server-2008 ssis etl

任务 - 有7个SQL服务器,每个服务器都有相同的数据库。考虑数据库的表Table_1。我想从所有7台服务器的Table_1中获取数据并将其放入主服务器的Table_1(下图中称为DataWarehouse)。我创建了一个数据流任务,用于将数据从这些服务器之一移动到主服务器。

现在,我想将此数据流任务放在for循环中,并将数据流从7个服务器中的每个服务器传送到主服务器。我该怎么做?

请参阅下面附带的照片。我希望我的foreach循环更改数据流任务中定义的连接"数据集市 - 一台服务器"然后进行数据传输。这甚至可能吗?如果是,那怎么样?我希望像编程一样简单 -

//pseudocode

foreach (String serverIP){

1 - connect to server using serverIP

2 - move data from server called serverIP to destination

}

SSIS foreach

2 个答案:

答案 0 :(得分:2)

是。我假设您可以作为foreach循环的一部分,使用服务器名称填充变量。从那里,单击您的连接管理器并调出属性窗格(如果它尚未启动,请点击F4)。单击“表达式”并将ServerName属性设置为服务器名称变量。

答案 1 :(得分:1)

我可能会参加6个数据流任务并享受并行性的好处。也许,如果您仍然想要采用线性方法,我建议您使用动态sql为OLEDB任务创建动态连接管理器。 (这会耗费时间,相信我,我有经验)。 如果您可以链接这些服务器,那么可能一个SQL查询可以为您解决问题。