我可以讓我的執行SQL任務看看2個不同的連接管理器。 對於實例:我需要從ServerA/DatabaseA查詢ServerB/DatabaseB的數據。 所以現在我需要寫一個查詢並從兩臺服務器上檢索數據。 現在2臺服務器沒有連接服務器,不一定。用不同的服務器/數據庫執行SQL任務
這是可能的,請讓我知道。
我可以讓我的執行SQL任務看看2個不同的連接管理器。 對於實例:我需要從ServerA/DatabaseA查詢ServerB/DatabaseB的數據。 所以現在我需要寫一個查詢並從兩臺服務器上檢索數據。 現在2臺服務器沒有連接服務器,不一定。用不同的服務器/數據庫執行SQL任務
這是可能的,請讓我知道。
使用單獨的數據流源任務爲Server A
和Server B
添加數據流任務。然後使用適當的「數據流轉換」任務加入結果。
作爲示例,此數據流將執行Flat File Source
和OLEDB Source
任務,對結果進行排序,然後對結果使用Merge Join
任務。這聽起來像你的實現需要兩個OLEDB Sources
或(ODBC,ADO NET等)。
我喜歡這種方法通過鏈接服務器或OPENROWSET
,因爲您不必在SQL Server數據源上配置鏈接服務器或啓用Adhoc Distributed Queries
。
我已經找到一種方法來解決缺乏之前鏈接的服務器,和我做這樣的事情 - 給它一個嘗試:
if object_id('tempdb..#mytemptable') is not null begin drop table #mytemptable end
select * into #mytemptable
from openrowset('SQLNCLI10','Server=TheOtherServersName;Trusted_Connection=yes;','SELECT * FROM FullyQualifiedName.dbo.MyTable')
/* Now use the temptable created on this server to do your join/subquery on whatever */
select * from MyOtherTable a
join #mytemptable b on a.id = b.id
乾杯!
回答問題,而不是評論。對於SSIS,您的評論顯然是一個很好的答案。我不打算只是複製你的評論作爲答案,儘管你的代表竊取。 :) – Zee 2013-02-13 21:19:22
它是兩臺服務器上相同的* *數據查詢或你想從一臺服務器獲取數據,並增強數據的信息從不同的位置設置? – billinkc 2013-02-13 19:53:06
「不一定」是指你不想鏈接服務器,它們還沒有鏈接,你可以鏈接它們,或者你無法鏈接服務器?如果你不想做一個鏈接服務器,你可以使用命令OPENROWSET,請看這裏:http://jasonhaley.com/blog/post/2004/03/23/Using-OPENROWSET-for-moving-data-from -SQL-服務器到SQL-Server.aspx。你也可以做OPENDATASOURCE。 – Kprof 2013-02-13 20:13:38