天天看點

SQL Server 如何将直接傳遞查詢作為表使用

 Microsoft® SQL Server™ 2000 将直接傳遞查詢作為未解釋的查詢字元串發送到 OLE DB 資料源。查詢必須使用 OLE DB 資料源可以接受的文法。Transact-SQL 語句像使用正常表引用一樣使用直接傳遞查詢結果。

  本示例使用直接傳遞查詢從 Microsoft Access 版本的 Northwind 示例資料庫中檢索結果集。

以下是引用片段:

  SELECT *

  FROM OpenRowset('Microsoft.Jet.OLEDB.4.0',

  'c:/northwind.mdb';'admin'; '',

  'SELECT CustomerID, CompanyName

  FROM Customers

  WHERE Region = ''WA'' ')

  有兩種方法可以從 OLE DB 提供程式中生成行集:

  ·引用提供程式可以表現為表格格式行集的資料源中的對象。所有提供程式都支援這一功能。

  ·向提供程式發出一條指令,該指令應可以由提供程式處理且處理結果可以表現為行集。此功能要求提供程式支援 OLE DB Command 對象和它的所有強制接口。

  當提供程式支援 Command 對象時,這兩個 Transact-SQL 函數可以用來發送指令(稱為直接傳遞查詢):

  ·OPENQUERY 使用連結伺服器名稱向 OLE DB 資料源發送指令字元串。

  ·OPENROWSET 和 OPEBDATASOURCE 支援向 OLE DB 資料源發送指令字元串。可以使用特殊名稱引用所得到的行集。

  OLE DB 規範并未定義一種可供所有 OLE DB 提供程式使用的指令語言。OLE DB 提供程式可以支援與所表現資料相關的任意指令語言。表現關系資料庫資料的 OLE DB 提供程式通常支援 SQL 語言。其它類型的提供程式(例如表現電子郵件檔案或網絡目錄中的資料的提供程式)通常支援另一種語言。

下一篇: 吾日三省