共用方式為


使用傳遞查詢做為資料表

SQL Server 可將傳遞查詢作為 OLE DB 資料來源未解譯的查詢字串。查詢必須採用 OLE DB 資料來源可接受的語法。Transact-SQL 陳述式可使用傳遞查詢的結果,就好像它是一般的資料表參考一樣。

下列是從 OLE DB 提供者產生資料列集的方法:

  • 參考提供者可公開成表格化資料列集之資料來源內的物件。所有的提供者都支援此功能。

  • 將提供者所能處理的指令傳給提供者,並將指令的結果公開成資料列集。此功能要求提供者支援 OLE DB Command 物件,以及它所有的強制介面。

當提供者支援 Command 物件時,這些 Transact-SQL 函數可用來傳送提供者命令,稱為傳遞查詢:

  • OPENQUERY 可將命令字串傳送給使用連結伺服器名稱的 OLE DB 資料來源。

  • OPENROWSET 可支援將指令字串傳送給 OLE DB 資料來源。您可使用特定名稱來參考產生的資料列集。

OPENROWSET 與 OPENQUERY 支援傳遞查詢,只有當查詢具備下列其中一項特性時,查詢字串才會包含預存程序呼叫:

  • 執行單一靜態 SELECT 陳述式。

  • 不使用任何動態的 EXECUTE 陳述式。

  • 不執行任何資料修改作業。

OLE DB 規格並未定義所有 OLE DB 提供者必須使用的一個命令語言。OLE DB 提供者可支援與它們所公開的資料相關的任何命令語言。公開關聯資料庫內資料的 OLE DB 提供者通常都支援 SQL 語言。其他類型的提供者,例如公開電子郵件檔或網路目錄內資料的提供者,通常支援不同的語言。