MSSQL

SQL Server 分布式查询:OLE DB连接(一)

日期:2015/6/28来源: IT猫扑网

  概述和术语

在 Microsoftsql server 2000 中,分布式查询允许SQL Server用户访问基于SQL Server的服务器以外的数据(位于其他运行SQL Server的服务器或是具有OLE DB接口的其他数据源中)。OLE DB提供了统一的方式来访问异类数据源中的列表数据。

在本文中,分布式查询是指任何引用了一个或多个外部OLE DB数据源中表或行集的SELECT、INSERT、UPDATE或DELETE语句。

远程表是指存储于 OLE DB 数据源中并且不在执行查询的SQL Server 所在服务器上的表。一个分布式查询可以访问一个或多个远程表。

OLE DB提供程序类别

根据OLE DB提供程序在SQL Server的分布式查询中的功能,我们将它们划分为如下类别。根据定义,它们并非互相排斥;某种提供程序可能属于一个或多个类别:



SQL 命令提供程序

凡是以SQL标准语法(SQL Server 认可)支持 Command对象的提供程序,都属于此类别。下面是 OLE DB 提供程序被SQL Server 视为SQL 命令提供程序的必要条件:



SQL 命令提供程序的示例为:Microsoft OLE DB Provider forSQL Server 和 Microsoft OLE DB Provider for ODBC。

索引提供程序

索引提供程序支持并提供与OLE DB对应的索引,同时还允许基于索引对基本表执行查找。下面是 OLE DB 提供程序被SQL Server 视为索引提供程序的必要条件:



如果一个OLE DB提供程序满足以上条件,用户可以设置提供程序选项 Index As Access Path,以允许SQL Server 使用提供程序的索引来执行查询。默认情况下,除非该选项已被设置,否则SQL Server 不会尝试使用提供程序的索引。

注意:SQL Server支持多个影响SQL Server访问OLE DB提供程序的方法的选项。可以使用SQL Server 企业管理器中的"链接服务器属性"对话框来设置这些选项。

简单表提供程序

简单表提供程序通过IOpenRowset接口来表现根据基本表打开行集的方式。这些提供程序既不是SQL 命令提供程序也不是索引提供程序;而是SQL Server 分布式查询所能处理的提供程序中最简单的一类。

对于此类提供程序,SQL Server 仅能在分布式查询运行过程执行表扫描操作。

非SQL 命令提供程序

该类提供程序支持 Command对象及其所有强制接口,但不支持SQL Server 认可的SQL 标准语法。

非SQL 命令提供程序的两个示例是:Microsoft OLE DB Provider for Indexing Service 和 Microsoft Windows NT®Active Directory™Service Interfaces (ADSI) OLE DB Provider。

Transact-SQL 子集

如果提供程序支持所需的 OLE DB 接口,下列 Transact-SQL 语句类别都可以用于分布式查询。



游标支持

如果提供程序支持所需的 OLE DB 功能,则分布式查询支持快照和键集两种游标。分布式查询不支持动态游标。用户请求的分布式查询的动态游标将自动降级为键集游标。

快照游标在游标打开时被写入,而且结果集保持不变;对基本表的更新、插入和删除操作不会反映到游标中。

键集游标在游标打开时被写入,而且结果集在游标的整个生存期中保持不变。但是,如果更新或删除基本表中的行,当访问这些行时,能够在游标中看到变化。如果对基本表的插入操作可能影响游标成员,则这种变化则是不可见的。

如果提供程序满足更新和删除远程表的条件,则可以通过使用分布式查询中定义的游标以及对远程表的引用来更新和删除远程表,例如:table UPDATE | DELETE <远程表> WHERE CURRENT OF <游标名称>。有关详细信息,请参阅本文后面的UPDATE和DELETE 语句。

支持键集游标的要求

如果满足所有 Transact-SQL 语法的条件,而且满足以下两种情况之一,那么在分布式查询中就支持键集游标:



包含OpenQuery 函数的分布式查询不支持键集游标。

支持可更新键集游标的要求

通过在分布式查询上定义的键集游标,可以更新或删除远程表,例如:UPDATE | DELETE< 远程表>WHERE CURRENT OF <游标名称>。下面是在分布式查询中允许使用可更新游标的条件:



OLE DB 提供程序交互阶段

所有分布式查询的执行方案都有六种操作:

相关文章

相关下载

网友评论

我要评论...
    没有更早的评论了
    取消