首页 / 数据库 / SQLServer / SQL Server 2000分布式查询:OLE DB连接
SQL Server 2000分布式查询:OLE DB连接2007-12-26 微软 概述和术语在 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 命令提供程序凡是以SQL标准语法(SQL Server 认可)支持 Command对象的提供程序,都属于此类别。下面是 OLE DB 提供程序被SQL Server 视为SQL 命令提供程序的必要条件:提供程序必须支持 Command 对象及其所有强制 OLE DB 接口:ICommand、ICommandText、IColumnsInfo、ICommandProperties 和 IAccessor。提供程序支持的SQL 语法必须至少是SQL 子集。提供程序必须通过 DBPROP_SQLSUPPORT 属性来报告语法。SQL 命令提供程序的示例为:Microsoft OLE DB Provider forSQL Server 和 Microsoft OLE DB Provider for ODBC。索引提供程序索引提供程序支持并提供与OLE DB对应的索引,同时还允许基于索引对基本表执行查找。下面是 OLE DB 提供程序被SQL Server 视为索引提供程序的必要条件:提供程序必须以 TABLES、COLUMNS 和 INDEXES 架构行集支持 IDBSchemaRowset 接口。提供程序必须支持通过 IOpenRowset 打开索引中的行集(通过指定索引名和相应的基本表名称)。Index 对象必须支持其所有的强制接口:IRowset、IRowsetIndex、IAccessor、IColumnsInfo、IRowsetInfo 和 IConvertTypes。对带索引基本表打开的行集(通过使用 IOpenRowset)必须支持 IRowsetLocate 接口,以便根据书签在行上定位。如果一个OLE DB提供程序满足以上条件,用户可以设置提供程序选项 Index As Access Path,以允许SQL Server 使用提供程序的索引来执行查询。默认情况下,除非该选项已被设置,否则SQL Server 不会尝试使用提供程序的索引。注意:SQL Server支持多个影响SQL Server访问OLE DB提供程序的方法的选项。可以使用SQL Server 企业管理器中的“链接服务器属性”对话框来设置这些选项。