Share via


使用 FOR XML 建構 XML

SELECT 查詢會將結果以資料列集的形式傳回。在查詢中指定 FOR XML 子句,您就可選擇以 XML 格式擷取 SQL 查詢的正式結果。在 FOR XML 子句中,您可以指定下列模式之一:

  • RAW
  • AUTO
  • EXPLICIT
  • PATH

RAW 模式會對 SELECT 陳述式傳回的資料列集中每一個資料列,產生一個 <row> 元素。您可以撰寫巢狀 FOR XML 查詢來產生 XML 階層。

AUTO 模式會使用啟發式方法 (根據 SELECT 陳述式的指定方式),在所產生的 XML 中產生巢狀結構。您對產生的 XML 之外觀只有最少的控制權。您可以撰寫巢狀的 FOR XML 查詢,以產生 AUTO 模式啟發式方法所產生之 XML 外觀以外的 XML 階層。

EXPLICIT 模式可讓您對 XML 外觀有更多的控制權。您在決定 XML 的外觀時,可依照意願混合屬性和元素。因為查詢執行的關係,產生的結果資料列集需要有特定格式。這個資料列集格式之後會對應到 XML 外觀。EXPLICIT 模式的功能是可依照意願混合屬性和元素、建立包裝函式和巢狀的複雜屬性,以及建立以空格分隔的值 (例如,OrderID 屬性可能有順序識別碼值的清單) 和混合的內容。

不過,撰寫 EXPLICIT 模式的查詢比較繁雜。您可以使用部份新的 FOR XML 功能,例如撰寫巢狀的 FOR XML RAW/AUTO/PATH 模式查詢和 TYPE 指示詞,而不要使用 EXPLICIT 模式來產生階層。巢狀的 FOR XML 查詢可以產生您使用 EXPLICIT 模式可產生的任何 XML。如需詳細資訊,請參閱<巢狀 FOR XML 查詢>與<FOR XML 查詢中的 TYPE 指示詞>。

若搭配使用 PATH 模式和巢狀的 FOR XML 查詢功能,則能夠以較簡易的方式提供 EXPLICIT 模式的彈性。

只有在執行設定為這些模式的查詢時,這些模式才有效。它們並不會影響任何後續查詢的結果。

請參閱

參考

FOR XML 子句的基本語法
使用 FOR XML 子句的規則
使用 RAW 模式
使用 AUTO 模式
使用 EXPLICIT 模式
新的 FOR XML 功能
利用 OPENXML 查詢 XML
使用 FOR XML 與 OPENXML 發行和處理 XML 資料

概念

使用 PATH 模式
XML 應用程式範例
使用 WITH XMLNAMESPACES 來加入命名空間

說明及資訊

取得 SQL Server 2005 協助