2011-05-03 113 views
2

我想将链接的服务器添加到Access数据库。我正在使用以下SQL代码来执行此操作。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 

但是当我运行这个...

select * from Test...tblProduct 

我得到这个错误...

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

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

回答

5

我想通了......

服务器运行SQL Server是一个64位的机器。典型的数据连接组件驱动程序无法在本机上使用(例如,将Microsoft.Jet.OleDB.4.0作为提供程序安装的下载程序)。我不得不下载具有64位选项的Access 2010组件。

Download from here

用于安装Microsoft.ACE.OLEDB.12.0作为提供者,我可以用在他的职位,BradBenning提到的SQL命令。

+0

我可以得到Office 2007的64位? – Sachin 2013-03-22 07:28:42

+0

我不明白你在做什么? – dcinadr 2013-03-22 15:46:06

+0

我在64位计算机和Accecc 2007上安装了SQL Server 2008 ...我想要'Microsoft.Jet.OLEDB.4.0' ... – Sachin 2013-03-23 10:08:15

3

尝试使用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 
+0

给我这个......'(null)'是一个无效的产品名称。 – dcinadr 2011-05-03 21:35:12