SQL 访问链接服务器

Posted

技术标签:

【中文标题】SQL 访问链接服务器【英文标题】:SQL to Access linked server 【发布时间】:2011-05-03 17:59:48 【问题描述】:

我正在尝试将链接服务器添加到 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

但是当我运行这个...

select * from Test...tblProduct

我收到这个错误...

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

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

【问题讨论】:

【参考方案1】:

我想通了……

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

Download from here

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

【讨论】:

我不明白你要做什么? 我有 64 位机器上的 SQL Server 2008 和 Accecc 2007 ...我想要 Microsoft.Jet.OLEDB.4.0... 典型的驱动程序不适用于 64 位机器。我退缩了,改用 microsoft ACE OLEDB。【参考方案2】:

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

【讨论】:

这给了我这个...'(null)' 是无效的产品名称。

以上是关于SQL 访问链接服务器的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 2008 如何配置链接服务器访问 SQL Server2000?

SQL Server 2008 如何配置链接服务器访问 SQL Server2000?

转SQL Server 数据库创建链接服务器访问另外一个SQL Server 数据库

在托管 SQL 实例上设置链接服务器

访问链接表从 SQL 服务器截断我的十进制值

MS Access 链接到 SQL 服务器视图