链接服务器

链接服务器配置使 SQL Server 可以对远程服务器上的 OLE DB 数据源执行命令。链接服务器具有以下优点:

  • 访问远程服务器。

  • 能够对企业内的异类数据源发出分布式查询、更新、命令和事务。

  • 能够以相似的方式确定不同的数据源。

链接服务器组件

链接服务器定义指定了下列对象:

  • OLE DB 访问接口

  • OLE DB 数据源

“OLE DB 访问接口”是管理特定数据源并与其交互的 DLL。“OLE DB 数据源”标识可通过 OLE DB 访问的特定数据库。虽然通过链接服务器定义查询的数据源通常是数据库,但 OLE DB 访问接口对各种文件和文件格式仍可用。这些文件和文件格式包括文本文件、电子表格数据和全文内容搜索的结果。

Microsoft SQL Server Native Client OLE DB 访问接口 (PROGID: SQLNCLI10) 是 SQL Server 的正式 OLE DB 访问接口。

注意注意

SQL Server 分布式查询旨在与任何实现所需 OLE DB 接口的 OLE DB 访问接口一起使用。但是,SQL Server 仅针对 SQL Server Native Client OLE DB 访问接口和其他特定访问接口进行过测试。有关详细信息,请参阅 与 SQL Server 一起测试过的 OLE DB 访问接口

链接服务器详细信息

下图显示了链接服务器配置的基础。

客户端层、服务器层和数据库服务器层

通常,链接服务器用于处理分布式查询。当客户端应用程序通过链接服务器执行分布式查询时,SQL Server 将分析命令并向 OLE DB 发送请求。行集请求的形式可以是对该访问接口执行查询或从该访问接口打开基表。

为使数据源能通过链接服务器返回数据,该数据源的 OLE DB 访问接口 (DLL) 必须与 SQL Server 的实例位于同一服务器上。

使用第三方 OLE DB 访问接口时,运行 SQL Server 服务的帐户必须具有对安装访问接口的目录及其所有子目录的读取权限和执行权限。

管理访问接口

有一组选项可以控制 SQL Server 如何加载和使用注册表中指定的 OLE DB 访问接口。有关详细信息,请参阅 为分布式查询配置 OLE DB 访问接口

管理链接服务器定义

设置链接服务器时,请在 SQL Server 中注册连接信息和数据源信息。完成注册后,可以用单个逻辑名称来引用该数据源。

可以使用存储过程和目录视图来管理链接服务器定义:

  • 通过执行 sp_addlinkedserver 创建链接服务器定义。

  • 通过对 sys.servers 系统目录视图执行查询,查看有关在 SQL Server 的特定实例中定义的链接服务器的信息。

  • 通过执行 sp_dropserver 删除链接服务器定义。还可以使用此存储过程删除远程服务器。

还可以使用 SQL Server Management Studio 来定义链接服务器。在对象资源管理器中,右键单击**“服务器对象”,选择“新建”,再选择“链接服务器”。通过右键单击链接服务器名称并选择“删除”**,可以删除链接服务器定义。

对链接服务器执行分布式查询时,请对每个要查询的数据源指定由四个部分组成的完全限定的表名。此由四个部分组成的名称的格式应该是 linked_server_name.catalog**.schema.**object_name。有关详细信息,请参阅分布式查询

注意注意

可以定义链接服务器指回(环回)到在其上定义它们的服务器。当在单服务器网络中测试使用分布式查询的应用程序时,环回服务器是很有用的。环回链接服务器专用于测试,许多操作(如分布式事务)不支持该服务器。