Xquery 語言參考 (SQL Server)

適用於:SQL Server

Transact-SQL 支援用於查詢 xml 資料類型的 XQuery 語言子集。 這個 XQuery 實作與 2004 年 7 月 XQuery 的工作草稿一致。 該語言由全球資訊網協會(W3C)開發,並參與所有主要資料庫供應商和 Microsoft。 由於 W3C 規格可能會在成為 W3C 建議之前進行未來的修訂,因此此實作可能與最終建議不同。 本主題概述 SQL Server 中支援的 XQuery 子集語意和語法。

如需詳細資訊,請參閱 W3C XQuery 1.0 語言規格

XQuery 是可以查詢結構化或半結構化 XML 資料的語言。 使用 Database Engine 中提供的 xml 資料類型支援,檔可以儲存在資料庫中,然後使用 XQuery 進行查詢。

XQuery 是以現有的 XPath 查詢語言為基礎,支援加入更好的反復專案、更好的排序結果,以及建構必要 XML 的能力。 XQuery 會在 XQuery 資料模型上運作。 這是 XML 檔的抽象概念,而且 XQuery 結果可以輸入或不具型別。 類型資訊是以 W3C XML 架構語言所提供的類型為基礎。 如果沒有輸入資訊可用,XQuery 會將資料視為不具類型。 這類似于 XPath 1.0 版如何處理 XML。

若要查詢儲存在 xml 類型的變數或資料行 中的 XML 實例,您可以使用 xml 資料類型方法 。 例如,您可以使用 xml 資料類型的 query() 方法來宣告 xml 類型的變數 並加以查詢

DECLARE @x xml  
SET @x = '<ROOT><a>111</a></ROOT>'  
SELECT @x.query('/ROOT/a')  

在下列範例中,會針對 AdventureWorks 資料庫中 ProductModel 資料表中 xml 類型的 Instructions 資料行 指定查詢。

SELECT Instructions.query('declare namespace AWMI="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";           
    /AWMI:root/AWMI:Location[@LocationID=10]  
') as Result   
FROM  Production.ProductModel  
WHERE ProductModelID=7  

XQuery 包含命名空間宣告、 declare namespace``AWMI=... 和查詢運算式 。 /AWMI:root/AWMI:Location[@LocationID=10]

請注意,XQuery 是針對 xml 類型的 Instructions 資料行 所指定。 xml 資料類型的 query() 方法 可用來指定 XQuery。

下表列出有助於瞭解 Database Engine 中 XQuery 實作的相關主題。

主題 說明
XML 資料 (SQL Server) 說明 Database Engine 中 xml 資料類型的支援 ,以及您可以針對這個資料類型使用的方法。 xml 資料類型會形成執行 XQuery 運算式的輸入 XQuery 資料模型。
XML 結構描述集合 (SQL Server) 描述如何輸入儲存在資料庫中的 XML 實例。 這表示您可以將 XML 架構集合與 xml 類型資料行產生關聯。 儲存在資料行中的所有實例都會根據集合中的架構進行驗證並輸入,並提供 XQuery 的類型資訊。

注意

本節的組織是以全球資訊網協會 (W3C) XQuery 工作草稿規格為基礎。 本節中提供的一些圖表取自該規格。 本節比較 Microsoft XQuery 實作與 W3C 規格,說明 Microsoft XQuery 與 W3C 有何不同,並指出不支援哪些 W3C 功能。 W3C 規格可在 http://www.w3.org/TR/2004/WD-xquery-20040723 取得。

本節內容

主題 說明
XQuery 基本概念 提供 XQuery 概念的基本概觀,以及運算式評估(靜態和動態內容)、原子化、有效的布林值、XQuery 類型系統、序列類型比對和錯誤處理。
XQuery 運算式 描述 XQuery 主要運算式、路徑運算式、序列運算式、算術比較和邏輯運算式、XQuery 建構、FLWOR 運算式、條件式和數量運算式,以及序列類型上的各種運算式。
模組和初構 (XQuery) 描述 XQuery 初構。
針對 xml 資料類型的 XQuery 函式 描述支援的 XQuery 函式清單。
針對 xml 資料類型的 XQuery 運算子 描述支援的 XQuery 運算子。
針對 xml 資料類型的其他範例 XQueries 提供其他 XQuery 範例。

另請參閱

XML 資料 (SQL Server)
XML 結構描述集合 (SQL Server)
大量匯入與匯出 XML 文件的範例 (SQL Server)