如何从SQL Server(链接服务器)访问Postgres数据

时间:2010-06-21 12:13:36

标签: sql-server postgresql linked-server

我有以下情况:

DB Server 1是Sql Server 2008,托管带有事务记录的数据库A. DB Server 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。如果每次用户从Reporting Server(在server1上运行)请求它时都需要运行,那么这将如何实际完成?

感谢。

2 个答案:

答案 0 :(得分:1)

OPENQUERY绝对是一种方法;您对动态SQL有什么问题?

也许在服务器1中创建一个临时表,使用parameterized query将过滤后的PostgreSQL数据子集导入该临时表,然后在最终的SQL查询中加入临时表。

答案 1 :(得分:0)

我建议在客户端应用程序中连接到server2,然后在其中执行第二个查询。这将是恕我直言。