程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQLServer2000分布式查詢OLEDB連接使用

SQLServer2000分布式查詢OLEDB連接使用

編輯:關於SqlServer
概述和術語
  在 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 企業管理器中的“鏈接服務器屬性”對話框來設置這些選項。
  
  簡單表提供程序
  簡單表提供程序通過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 語句類別都可以用於分布式查詢。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved