链接服务器SQL Server 2014到SQL Server版本8

时间:2015-07-23 08:51:50

标签: sql-server sql-server-2014 sql-server-2014-express

我最近安装了SQL Server 2014 Express,需要创建一个链接服务器。我在SQL Server Management Studio中尝试了这个(来自object explorer - server objects - linked servers - add linked server)。

当通过服务器类型“SQL server”直接连接到服务器或通过在“其他数据源”中指定连接属性,然后在SQL Server的Microsoft OLE DB Provider中填写其他详细信息时,我收到以下错误。

  

已创建链接服务器但连接测试失败。 SQL   服务器本机客户端11.0不支持与SQL Server的连接   2000或更早版本。

我需要能够在不同服务器上的两个数据库之间创建连接查询,实现此目的的最佳方法是什么?我需要连接的数据库是版本8(SQL Server 2000),非常古老。我已经读过可能通过transact SQL实现但不确定要采取的步骤。

1 个答案:

答案 0 :(得分:4)

可以创建链接服务器,但无法通过GUI完成。作为一种变通方法,您可以创建一个DSN,以便在transact SQL中用于链接服务器。

如需完整说明,请访问http://sqlwithmanoj.com/2012/12/10/sql-server-2012-does-not-support-linked-server-to-sql-server-2000-workaround/

<强> =&GT; WORKAROUND / FIX:

现在,作为使此链接服务器正常工作的解决方法,我们可以选择使用将连接到远程服务器的ODBC数据源。  有两种方法:  1.我们要么创建ODBC数据源(DSN)并在我们的链接服务器中使用它  2.或者,直接在链接服务器提供程序

中使用数据源(DSN)连接字符串

<强> - &GT;使用appraoch#1:

创建ODBC数据源: - 打开“控制面板”,转到“管理工具”,然后转到“数据源(ODBC)”。 - 在“ODBC数据源管理器”窗口中,转到“系统DSN”选项卡。 - 点击“添加”以创建新的DSN。 - 选择“SQL Server”,然后单击“完成”。 - 在新窗口中,为Source DSN指定一个正确的名称(如:NorthWind2000DSN),我们将在创建链接服务器时使用此名称。提供SQL Server 2000上的服务器名称,此处为“NorthWind”。点击下一步。 - 选择身份验证类型,Windows或SQL Server身份验证。点击下一步。 - 更改默认数据库,不是必需的。点击下一步。 - 单击“完成”。您将看到在“系统DSN”选项卡下创建的新DSN。

现在,创建Linked Server并在@datasrc参数中提供此DSN,并提供@provider参数“MSDASQL”。 您可以使用以下查询创建相同的内容:

USE master
GO
-- Drop Existing LinkedServer [NorthWind2000]:
EXEC sp_dropserver @server=N'NorthWind2000', @droplogins='droplogins'
GO

-- Re-create LinkedServer [NorthWind2000] by using the ODBC connection:
EXEC sp_addlinkedserver @server = N'NorthWind2000', 
                    @srvproduct=N'MSDASQL', 
                    @provider=N'MSDASQL', 
                    @datasrc = N'NorthWind2000DSN', 
                    @location=N'System';

EXEC sp_addlinkedsrvlogin @rmtsrvname=N'NorthWind2000', 
                      @useself=N'True', 
                      @locallogin=NULL, 
                      @rmtuser=NULL, 
                      @rmtpassword=NULL
GO

<强> - &GT;使用appraoch#2:

我们也可以直接将DSN连接字符串放在Provider String @provstr param中。  我们来看看它:

USE master
GO
-- Drop Existing LinkedServer [NorthWind2000]:
EXEC sp_dropserver @server=N'NorthWind2000', @droplogins='droplogins'
GO
-- Re-create LinkedServer [NorthWind2000] by using the ODBC connection:
EXEC sp_addlinkedserver @server = N'NorthWind2000', 
                    @srvproduct=N'', 
                    @provider=N'MSDASQL', 
                    @provstr=N'DRIVER={SQLServer};SERVER=NorthWind;Trusted_Connection=yes;'

EXEC sp_addlinkedsrvlogin @rmtsrvname=N'NorthWind2000', 
                      @useself=N'True', 
                      @locallogin=NULL, 
                      @rmtuser=NULL, 
                      @rmtpassword=NULL
GO