2010-06-21 17 views
1

我有以下情況:如何從SQL Server訪問Postgres的數據(鏈接的服務器)

DB服務器1 SQL Server 2008和主機數據庫中的與交易記錄 DB服務器2的Postgres和主機數據庫B用價格記錄

Server2作爲鏈接服務器添加到server1。

我需要運行一個查詢,其中對於server1上的每個事務記錄,我需要檢查server2中的多個價格。

理想的情況下是這樣的(在Server1上運行):

選擇t1.clientid,t1.item,t1.price,t1.time,server2.databaseX.myfunction(t1.item,t1.time ) 交易t1其中

我玩弄了openquery,但我遇到了試圖將參數嵌入到動態sql中的問題。

是否有一種方便的方式在這兩臺服務器上運行這種查詢?

我無法將相關數據從server2導出到server1,因爲它的數量很大。我可以通過其他方式做到這一點,但我必須將所有事情都還給server1。如果每次用戶從報表服務器(在服務器1上運行)請求運行,它將如何實際執行?

謝謝。

+2

這個怎麼樣:http://msdn.microsoft.com/en-us/library/ms188279.aspx – IMHO 2010-06-21 12:53:13

回答

1

OPENQUERY絕對是一種方法;動態SQL有什麼問題?

也許在服務器1中創建臨時表,使用parameterized query將已過濾的PostgreSQL數據子集導入該臨時表,然後在最終的SQL查詢中加入臨時表。

0

我建議在客戶端應用程序中連接到server2,然後在其中執行第二個查詢。這將是恕我直言,更容易。