如何进行查询以加入本地数据库和链接服务器数据库

时间:2016-12-27 08:01:24

标签: sql sql-server-2008 linked-server

我创建了一个链接服务器,并将名称命名为test

当我写一个像

这样的查询时
select * 
from openquery(test, 'select * from account') 

它工作正常,但是当我运行此查询时:

select * 
from openquery(test, 'select * from account join test1 on account.accountid=test1.student_id') 

它会抛出错误

  

OLE DB提供程序" SQLNCLI10"对于链接服务器" test"返回消息   "延期准备无法完成。"。

我不知道加入服务器我做错了什么。

2 个答案:

答案 0 :(得分:0)

您可以尝试:

select * from test.master.dbo.account 
              join 
              test.master.dbo.test1 
                      on account.accountid=test1.student_id

同样:

select * from test.master.dbo.account

答案 1 :(得分:0)

当2个服务器(链接服务器和本地服务器)中的任何一个使用ms sql 2012及更高版本时。然后在创建链接服务器时确保在提供程序下拉列表中选择SQL Server Native Client 11.0。我一直在收到错误的原因是因为在提供程序下我选择了SQL Server Native Client 10.0而我的链接服务器使用的是sql2008而我的本地服务器是sql2012

解决方案

select * from test.account.dbo.account m  
    left join  
         test t  
            on m.accountid=t.student_id