FOR XML 子句的基本語法
FOR XML 模式可以是 RAW、AUTO、EXPLICIT 或 PATH。它可以決定產生 XML 的外觀。
![]() |
---|
FOR XML 選項的 XMLDATA 指示詞已被取代。在 RAW 和 AUTO 模式的情況下,請使用 XSD 產生。EXPLICT 模式中沒有 XMLDATA 指示詞的替代項目。未來的 Microsoft SQL Server 版本將移除這項功能。請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。 |
以下是 FOR 子句 (Transact-SQL) 中所述的基本語法:
[ FOR { BROWSE | <XML> } ]
<XML> ::=
XML
{
{ RAW [ ('ElementName') ] | AUTO }
[
<CommonDirectives>
[ , { XMLDATA | XMLSCHEMA [ ('TargetNameSpaceURI') ]} ]
[ , ELEMENTS [ XSINIL | ABSENT ]
]
| EXPLICIT
[
<CommonDirectives>
[ , XMLDATA ]
]
| PATH [ ('ElementName') ]
[
<CommonDirectives>
[ , ELEMENTS [ XSINIL | ABSENT ] ]
]
}
<CommonDirectives> ::=
[ , BINARY BASE64 ]
[ , TYPE ]
[ , ROOT [ ('RootName') ] ]
引數
RAW[('ElementName')]
使用查詢結果並將結果集中的每一個資料列轉換為 XML 元素,該元素包含做為元素標記的泛用識別碼 <row />。當您使用此指示詞時,您可以選擇性地指定資料列元素的名稱。產生的 XML 將會使用指定的 ElementName 做為針對每個資料列所產生的資料列元素。如需詳細資訊,請參閱<使用 RAW 模式>。AUTO
將查詢結果以簡易巢狀 XML 樹狀結構傳回。FROM 子句中的每個資料表至少都有一個資料行是列在 SELECT 子句中,這些資料表是以 XML 元素表示。列在 SELECT 子句中的資料行會對應到適當的元素屬性。如需詳細資訊,請參閱<使用 AUTO 模式>。EXPLICIT
指定產生之 XML 樹狀結構的形狀已明確地定義。透過使用此模式,必須以特定方式撰寫查詢,這樣才能明確地指定您需要的巢狀其他資訊。如需詳細資訊,請參閱<使用 EXPLICIT 模式>。PATH
提供更簡單的方式來混合元素與屬性,並引用其他的巢狀來代表複雜的屬性。您可以使用 FOR XML EXPLICIT 模式查詢來建構從資料列集而來的這類 XML,但是 PATH 模式對於可能會比較繁雜的 EXPLICIT 模式查詢提供較簡單的替代方案。PATH 模式還可撰寫巢狀 FOR XML 查詢及 TYPE 指示詞,以傳回 xml 類型執行個體,這將可讓您撰寫較不複雜的查詢。它為撰寫大部份的 EXPLICIT 模式查詢提供替代方案。依預設,PATH 模式會針對結果集的每個資料列產生 <row> 元素包裝函式。您可以選擇性地指定元素名稱。如果您有選擇,則會將指定名稱做為包裝函式的元素名稱。如果您提供空白字串 (FOR XML PATH ('')),就不會產生包裝函式元素。如需詳細資訊,請參閱<使用 PATH 模式>。XMLDATA
指定應傳回的內嵌 XML-Data Reduced (XDR) 結構描述。結構描述則是文件預先決定的內嵌結構描述。如需實用範例,請參閱<使用 RAW 模式>。XMLSCHEMA
傳回內嵌 W3C XML 結構描述 (XSD)。在指定此指示詞時,您可以選擇性地指定目標命名空間 URI。這將會傳回結構描述中指定的命名空間。如需詳細資訊,請參閱<內嵌 XSD 結構描述的產生>。如需實用範例,請參閱<使用 RAW 模式>。ELEMENTS
若指定了 ELEMENTS 選項,則資料行會以子元素傳回。否則這些資料行會對應到 XML 屬性。此選項只在 RAW、AUTO 以及 PATH 模式中才有支援。在使用此指示詞時,您可以選擇性地指定 XSINIL 或 ABSENT。XSINIL 可指定將含有 xsi:nil 屬性的元素,設為針對 NULL 資料行值所建立的 True。依預設或當同時指定 ABSENT 與 ELEMENTS 時,就不會針對 NULL 值建立任何元素。如需實用範例,請參閱<使用 RAW 模式>與<使用 AUTO 模式>。BINARY BASE64
若指定 BINARY Base64 選項,則任何由查詢所傳回的二進位資料都會以 base64 編碼格式表示。若要使用 RAW 和 EXPLICIT 模式擷取二進位資料,必須指定此選項。在 AUTO 模式下,二進位資料在預設下是以參考來傳回。如需實用範例,請參閱<使用 RAW 模式>。TYPE
指定查詢以 xml 類型傳回結果。如需詳細資訊,請參閱<在 FOR XML 查詢中的 TYPE 指示詞>。ROOT [('RootName')]
指定將單一最上層元素加入產生的 XML。您可以選擇性地指定要產生的根元素名稱。預設值是 "root"。