简体   繁体   English

SQL 2008 R2中的链接服务器问题

[英]Linked server issue in SQL 2008 R2

We're in the middle of migrating from SQL 2000 to SQL 2008 R2. 我们正处于从SQL 2000迁移到SQL 2008 R2的过程中。

Have everything almost complete except I cannot replicate a linked server we have in 2000 on 2008. 除了我无法复制2000年在2008年的链接服务器外,一切都接近完成。

It's a linked Access database on our network. 它是我们网络上的链接Access数据库。

The problem seems to be that on the SQL 2000 server I have the option to select Microsoft Jet 4.0 OLE DB Provider from the list of providers but that is not an option on the SQL 2008 server and any of the providers I do try and configure return an error. 问题似乎是在SQL 2000服务器上,我可以选择从提供程序列表中选择Microsoft Jet 4.0 OLE DB提供程序,但这不是SQL 2008服务器上的选项,而是我尝试配置的任何提供程序返回一个错误。

The providers I have to choose from on the SQL 2008 server are as follows: 我必须在SQL 2008服务器上选择的提供程序如下:

  • Microsoft OLE DB Provider for SQL Server 用于SQL Server的Microsoft OLE DB提供程序
  • Microsoft OLE DB Provider for Analysis Services 10.0 用于Analysis Services 10.0的Microsoft OLE DB提供程序
  • OLE DB Provider for Microsoft Directory Services 用于Microsoft目录服务的OLE DB提供程序
  • SQL Server Native Client 10.0 SQL Server Native Client 10.0
  • Microsoft OLE DB Provider for ODBC Drivers 用于ODBC驱动程序的Microsoft OLE DB提供程序
  • Microsoft OLE DB Simple Provider Microsoft OLE DB简单提供程序
  • Microsoft OLE DB Provider for Indexing Service 用于索引服务的Microsoft OLE DB提供程序

I had thought the simple solution would be to try and install the Jet provider but I can't find it anywhere. 我原以为简单的解决方案是尝试安装Jet提供程序,但我无法在任何地方找到它。

Anyone know what I am missing here? 谁知道我在这里失踪了什么?

Thanks 谢谢

Is the R2 instance 64bit by any chance? R2实例是64位吗? In that case you need to make sure you have the 64bit Jet drivers installed. 在这种情况下,您需要确保安装了64位Jet驱动程序。

Try using a script to create the linked server for you? 尝试使用脚本为您创建链接服务器?

USE [master]
GO
EXEC master.dbo.sp_addlinkedserver 
          @server = N'My_Access_DB', 
          @srvproduct=N'ACCESS 2007', 
          @provider=N'Microsoft.ACE.OLEDB.12.0', 
          @datasrc=N'Z:\data\Access\Northwind2007.accdb'
GO
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'My_Access_DB', 
             @locallogin = NULL , 
             @useself = N'False'
GO

In your SQL Server Management Studio try to execute this; 在SQL Server Management Studio中尝试执行此操作;

exec sp_enum_oledb_providers this stored procedure show you the list of providers. exec sp_enum_oledb_providers此存储过程显示提供程序列表。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM