FOR XML 子句的基本語法
FOR XML 模式可以是 RAW、AUTO、EXPLICIT 或 PATH。它可以決定產生 XML 的外觀。以下是 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 模式>與<新的 FOR XML 功能>。
- AUTO
Returns query results in a simple, nested XML tree.FROM 子句中的每個資料表至少都有一個資料行是列在 SELECT 子句中,這些資料表是以 XML 元素表示。The columns listed in the SELECT clause are mapped to the appropriate element attributes.如需詳細資訊,請參閱<使用 AUTO 模式>與<新的 FOR XML 功能>。
- EXPLICIT
Specifies that the shape of the resulting XML tree is defined explicitly.透過使用此模式,必須以特定方式撰寫查詢,這樣才能明確地指定您需要的巢狀其他資訊。如需詳細資訊,請參閱<使用 EXPLICIT 模式>與<新的 FOR XML 功能>。
- 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"。
請參閱
參考
使用 RAW 模式
使用 AUTO 模式
使用 EXPLICIT 模式
使用 FOR XML 建構 XML