SQL Server將直接傳遞查詢作為表使用的方法

iSQlServer發表於2010-01-14

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

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


  SELECT *
  FROM OpenRowset('Microsoft.Jet.OLEDB.4.0',
  'c: orthwind.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 語言。其它型別的提供程式(例如表現電子郵件檔案或網路目錄中的資料的提供程式)通常支援另一種語言。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-625133/,如需轉載,請註明出處,否則將追究法律責任。

相關文章