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?