我有以下情况:
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上运行)请求它时都需要运行,那么这将如何实际完成?
感谢。
答案 0 :(得分:1)
OPENQUERY绝对是一种方法;您对动态SQL有什么问题?
也许在服务器1中创建一个临时表,使用parameterized query将过滤后的PostgreSQL数据子集导入该临时表,然后在最终的SQL查询中加入临时表。
答案 1 :(得分:0)
我建议在客户端应用程序中连接到server2,然后在其中执行第二个查询。这将是恕我直言。