3

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

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

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

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

4

1 回答 1

4

可以创建链接服务器,但不能通过 GUI 完成。作为一种解决方法,您可以创建一个 DSN 以在事务 SQL 中使用以链接服务器。

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

=> 解决方法/修复:

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

–> 使用方法#1:

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

现在,创建链接服务器并在 @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

–> 使用方法#2:

我们也可以直接将 DSN 连接字符串放在 Provider String @provstr 参数中。让我们在下面检查一下:

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
于 2015-07-24T08:07:40.613 回答