群集 SQL Server 中的链接服务器注意事项

在群集 SQL Server 中针对没有随 SQL Server 2005 提供的 OLE DB 访问接口配置链接服务器时,一定要确保群集的所有节点上都安装了 OLE DB 访问接口。此外,定义链接服务器的任何属性都应是位置透明的,而不应包含假定 SQL Server 始终运行在群集的特定节点上的信息。

下面的示例针对运行 SQL Server 的服务器定义链接服务器,并在 SELECT 语句中使用由四个部分组成的名称引用其中一个远程表。

sp_addlinkedserver @server = N'LinkServer',
    @srvproduct = N' ',
    @provider = N'SQLNCLI', 
    @datasrc = N'ServerNetName', 
    @catalog = N'AdventureWorks'
GO
SELECT *
FROM LinkServer.AdventureWorks.HumanResources.Employee
GO

环回链接服务器

可以定义链接服务器指回(环回)到在其上定义它们的服务器。当在单服务器网络中测试使用分布式查询的应用程序时,环回服务器是很有用的。

例如,在名为 MyServer 的服务器上执行下面的 sp_addlinkedserver 存储过程将定义一个环回链接服务器:

sp_addlinkedserver @server = N'MyLink',
    @srvproduct = N' ',
    @provider = N'SQLNCLI', 
    @datasrc = N'MyServer', 
    @catalog = N'AdventureWorks'
GO

使用 MyLink 作为服务器名称的 Transact-SQL 语句通过 SQLNCLI 访问接口循环并环回到本地服务器。

在分布式事务中不能使用环回链接服务器。从分布式事务内尝试对环回链接服务器进行分布式查询将导致错误,例如错误 3910:“[Microsoft][ODBC SQL Server Driver][SQL Server]其他会话正在使用事务的上下文。”

请参阅

概念

SQL 本机客户端 OLE DB 访问接口
分布式查询

其他资源

sp_addlinkedserver (Transact-SQL)

帮助和信息

获取 SQL Server 2005 帮助