如何使用SSIS迭代多个数据库?

时间:2015-09-02 14:42:44

标签: sql-server visual-studio-2013 ssis

我正在尝试创建一个循环大约150个数据库的SSIS(Visual Studio 2013,SQL Server 2014)作业;更新每个数据库中的4个表。这些数据库存在于1台服务器上每个位置都有自己的数据库,这些数据库是彼此的克隆。

我已经阅读了一些演练,说创建一个执行SQL任务来收集所有数据库名称,然后是foreach循环。这些演练是高水平的,并且提供了关于所需实际步骤的非常细节。

我仍然是SSIS的新手,之前没有遇到过这项任务。我的书都没有涉及这个主题,不幸的是,不,我不是VB或C#开发人员。我正在将此解决方案构建为脚本,但被告知要在SSIS而不是存储过程中执行此操作。

非常感谢任何帮助。

修改

在Wrox Book:SSIS 2012,第4章容器,Foreach ADO枚举器示例演练之后,我能够让系统返回我需要通过脚本任务连接的每个数据库的列表。

现在我有脚本任务为我提供了数据库名称,我需要将它与我的更新语句的执行SQL任务相关联,以对抗正确的数据库;但是,我不知道如何关联要在执行SQL任务中使用的脚本任​​务返回的数据库名称。

Image of SSIS project

1 个答案:

答案 0 :(得分:0)

执行executionqltask并将以下查询写入其中。

使用object数据类型

创建变量

将该变量指定为executionql task

中的输出

然后使用foreachloop容器并将上面的变量与put一起使用,并在容器中分配一些新变量(variable2)以将当前db作为输出。

在连接管理器的属性中,转到表达式并在连接字符串中为此分配(variable2),其中相应地使用循环容器进行更改

那么你可以在那里做你的操作....

SELECT name
FROM sys.databases