Sql server 如何使用SSI迭代多个数据库?

Sql server 如何使用SSI迭代多个数据库?,sql-server,visual-studio-2013,ssis,Sql Server,Visual Studio 2013,Ssis,我正在尝试创建一个SSIS(VisualStudio2013,SQLServer2014)作业,该作业循环大约150个数据库;更新每个数据库中的4个表。这些数据库存在于1台服务器上。每个位置都有自己的数据库,这些数据库是彼此的克隆 我读过一些演练,其中提到创建一个executesql任务来收集所有数据库名称,然后是foreach循环。这些演练是高水平的,提供的实际步骤细节很少 我对SSIS还是相当陌生的,以前没有遇到过这个任务。我的书中没有一本涉及这个主题,不幸的是,没有,我不是VB或C#开发者

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

我读过一些演练,其中提到创建一个executesql任务来收集所有数据库名称,然后是foreach循环。这些演练是高水平的,提供的实际步骤细节很少

我对SSIS还是相当陌生的,以前没有遇到过这个任务。我的书中没有一本涉及这个主题,不幸的是,没有,我不是VB或C#开发者。我将此解决方案构建为脚本,但被告知在SSIS中而不是在存储过程中进行构建

任何帮助都将不胜感激

编辑

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

既然脚本任务为我提供了数据库名称,我需要将其与执行SQL任务相关联,以便我的update语句针对正确的数据库工作;但是,我不知道如何关联脚本任务返回的数据库名称,以便在执行SQL任务中使用


获取ExecuteSQLSTASK并将下面的查询写入其中

创建具有对象数据类型的变量

将该变量指定为executesql任务中的输出

然后使用foreachloop容器,将上述变量作为输入,并在容器中分配一些新变量(variable2),以将当前数据库作为输出

在连接管理器的属性中,转到表达式,并在连接字符串中指定此变量(variable2),该变量随循环容器而相应更改

然后你可以在那里做你的手术

SELECT name
FROM sys.databases

你提到的解决方案听起来正是你所需要的。你到底有什么问题?你能展示一下到目前为止你做了什么吗?确切地说,你描述的高级方法是完美的,那么你对该方法的哪一步有问题,你对此有什么具体的问题?询问每一步的细节对SO来说都是一个太宽泛的问题。这个问题对这个网站来说太宽泛了一点,但你肯定是朝着正确的方向前进。提示:查看for/foreach循环容器。