SQL访问链接服务器

dci*_*adr 3 sql ms-access-2007

我正在尝试将链接服务器添加到Access数据库.我使用以下SQL代码来执行此操作.

exec sp_addlinkedserver 
@server = 'Test',
@provider = 'Microsoft.Jet.OLEDB.4.0',
@srvproduct = 'OLE DB Provider for Jet',
@datasrc = '\\srv\public$\CM Database\Data\sysConfig_dat.mdb'
go
EXEC sp_addlinkedsrvlogin Test, FALSE, Null, Admin, Null
Run Code Online (Sandbox Code Playgroud)

但是当我跑这个......

select * from Test...tblProduct
Run Code Online (Sandbox Code Playgroud)

我收到这个错误......

OLE DB提供程序"Microsoft.Jet.OLEDB.4.0"不能用于分布式查询,因为提供程序配置为在单线程单元模式下运行.我究竟做错了什么?

我在32位系统上使用SQL Server Management Studio 2008.

dci*_*adr 6

我想到了...

运行SQL Server的服务器是64位计算机.典型的数据连接组件驱动程序不适用于此计算机(即将Microsoft.Jet.OleDB.4.0作为提供程序安装的下载).我不得不下载具有64位选项的Access 2010组件.

从这里下载

这将安装Microsoft.ACE.OLEDB.12.0作为提供程序,我可以使用BradBenning在其帖子中提到的SQL命令.


Bra*_*ing 5

尝试使用Microsoft ACE OLEDB提供程序:

EXEC sp_addlinkedserver
   @server = 'Test'
  ,@provider = 'Microsoft.ACE.OLEDB.12.0'
  ,@datasrc = '\\srv\public$\CM Database\Data\sysConfig_dat.mdb'
  ,@srvproduct='Access'
GO 
Run Code Online (Sandbox Code Playgroud)