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

How to make a query to join local database and linked server database

我创建了一个链接服务器并将名称命名为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 provider "SQLNCLI10" for linked server "test" returned message "Deferred prepare could not be completed.".

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

您可以试试:

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

同样:

select * from test.master.dbo.account

当 2 个服务器(链接服务器和本地服务器)中的任何一个使用 ms sql 2012 及更高版本时。然后在创建链接服务器时确保在提供程序下拉列表中我们 select SQL Server Native Client 11.0。我一直收到错误的原因是因为在 Provider 下我 selected 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