2013-05-10 153 views
2

任務 - 有7個SQL服務器,每個都有相同的數據庫。考慮數據庫的表格Table_1。我想從所有7臺服務器的Table_1中獲取數據,並將其放入主服務器的Table_1中(下面的照片中稱爲DataWarehouse)。我創建了一個數據流任務,將數據從其中一臺服務器移動到主服務器。SSIS ForEach循環 - 更改for循環內的連接

現在,我想把這個數據流任務放在一個for循環中,並且執行從7個服務器中的每一個到主服務器的數據流。我該怎麼做 ?

請參閱下面附圖。我希望我的foreach循環更改數據流任務「Data Mart-One Server」中定義的連接,然後執行數據傳輸。這甚至有可能嗎?如果是,那麼如何?我希望簡單的東西就像我們在編程 -

//pseudocode 

foreach (String serverIP){ 

1 - connect to server using serverIP 

2 - move data from server called serverIP to destination 

} 

SSIS foreach

+0

我不是已經回答了嗎? http://stackoverflow.com/questions/16372338/ssis-etl-transfer-tables-databases-from-many-servers – 2013-05-11 07:45:49

+0

@ElectricLlama - 實際上,沒有。我需要點這樣發佈圖像。所以,我別無選擇,只能接受你的回答。它不適合我。我忘了爲什麼。我一整天都在處理這件該死的事情,而我忘記了你的答案沒有奏效。此外,它不是一步一步的:) – gregnorm 2013-05-11 08:03:38

+0

如果你問一個問題....那麼你應該解決它,然後,不接受它,並要求另一個。您發佈的圖片不會在您的問題中添加任何內容。在前面的問題中可以解決這個問題。 – 2013-05-14 03:41:57

回答

2

是。我假設你可以作爲你的foreach循環的一部分,用服務器的名字填充一個變量。從那裏,點擊你的連接管理器並調出屬性窗格(如果它尚未打開,則點擊F4)。單擊「表達式」並將ServerName屬性設置爲您的服務器名稱變量。

+0

你能一步一步向我展示嗎? – gregnorm 2013-05-11 02:53:48

+0

哪一部分特別是你有麻煩?另外,你有什麼嘗試? – 2013-05-11 03:58:37

+0

我所要做的就是讓我的for循環更改連接管理器用於數據「數據集市 - 一臺服務器」的IP地址。到目前爲止沒有運氣。 – gregnorm 2013-05-11 04:10:25

1

我可能會去做6個數據流任務並且利用並行性。也許,如果你仍然想要一個線性的方法,我會建議你爲你的OLEDB任務創建一個動態的連接管理器,當然還有動態sql。 (這會很費時間,相信我,我有這方面的經驗)。 如果您可以鏈接這些服務器,那麼可能有一個SQL查詢可以爲您解決問題。