【问题标题】:SSIS ForEach loop - change connection inside a for loopSSIS ForEach 循环 - 在 for 循环内更改连接
【发布时间】:2013-05-10 22:27:36
【问题描述】:

任务 - 有 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

}

【问题讨论】:

  • 我不是已经回答了吗? stackoverflow.com/questions/16372338/…
  • @ElectricLlama - 实际上,没有。我需要这些点才能在上面发布图像。所以,我别无选择,只能接受你的回答。它对我不起作用。我忘了为什么。我整天都在研究这该死的东西,我忘记了为什么你的回答不起作用。而且,这不是一步一步的:)
  • 如果你问一个问题......那么你应该在那里解决它然后,不要接受它并问另一个问题。您发布的图片不会对您的问题添加任何内容。这可以在前面的问题中解决。
  • 如果你想解决这个问题中的问题,你需要发布细节——你到底遇到了什么问题?如果您遵循指南,您在哪一步失败了,错误消息/意外结果到底是什么?

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


【解决方案1】:

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

【讨论】:

  • 您具体在哪个部分遇到了问题?另外,你试过什么?
  • 我要做的就是让我的 for 循环更改连接管理器用于数据“数据集市 - 一台服务器”的 IP 地址。到目前为止没有运气。
  • 我试过这个链接,但它不是一步一步的,所以我得到了错误:(codeproject.com/Articles/14341/…
  • 也试过了,但中途停止了 - 没有意义 - sanssql.com/2011/08/looping-through-sql-servers-using-ssis.html
  • @etldude 如果像该教程这样基本的东西难倒你,你需要回到 MSDN 上的初学者指南。我认为你的起点太高了,需要了解基础知识。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多