FOR 子句 (Transact-SQL)
FOR 子句用來指定 BROWSE 或 XML 選項。BROWSE 和 XML 是無關的選項。
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' ) ] ]
參數
-
BROWSE
-
指定可以在查看 DB-Library 瀏覽模式遊標中的資料時進行更新。如果表包括 timestamp 列,並且表有唯一索引,而且在發送到 SQL Server 執行個體的 SELECT 語句中 FOR BROWSE 選項位於末尾,則可以在應用程式中瀏覽該表。
| 注意: |
| 不能在包括 FOR BROWSE 選項的 SELECT 語句中使用 <lock_hint> HOLDLOCK。 |
FOR BROWSE 不能出現在由 UNION 運算子所聯結的 SELECT 語句中。
| 注意: |
| 如果表的唯一索引鍵列可為空白,並且表在外部聯結的內側,則瀏覽模式不支援索引。 |
-
XML
-
指定以 XML 文檔返回查詢的結果。必須指定下列 XML 模式之一:RAW、AUTO、EXPLICIT。有關 XML 資料和 SQL Server 的詳細資料,請參閱使用 FOR XML 構造 XML。
-
RAW [ ('ElementName') ]
-
獲得查詢結果並將結果集內的每一行轉換為以一般標識符 <row /> 作為元素標記的 XML 元素。(可選)可以為該行元素指定名稱。所得到的 XML 輸出將使用指定的 ElementName 作為為每一行產生的行元素。有關詳細資料,請參閱使用 RAW 模式和 RAW 模式的增強功能。
-
AUTO
-
以簡單的嵌套 XML 樹返回查詢結果。FROM 子句中每個在 SELECT 子句中至少列出一次的表都被表示為一個 XML 元素。SELECT 子句中列出的列映射到適當的元素屬性。有關詳細資料,請參閱使用 AUTO 模式和 AUTO 模式的增強功能。
-
EXPLICIT
-
指定顯式定義結果 XML 樹的形狀。使用該模式要求必須以一種特定的方式編寫查詢,即顯式指定與想要的嵌套有關的其他資訊。有關詳細資料,請參閱使用 EXPLICIT 模式和 EXPLICIT 模式的增強功能。
-
XMLDATA
-
返回內聯 XDR 架構,但不將根項目添加到結果中。如果指定了 XMLDATA,則 XDR 架構將被追加到文檔末尾。
-
XMLSCHEMA [ ('TargetNameSpaceURI') ]
-
返回內聯 XSD 架構。如果指定該指令(用於返回架構中指定的命名空間),則可以選擇指定目標命名空間 URI。有關詳細資料,請參閱內聯 XSD 架構產生。
-
ELEMENTS
-
指定列作為子項目返回。否則,列將映射到 XML 屬性。只在 RAW、AUTO 和 PATH 模式中支援該選項。有關詳細資料,請參閱 RAW 模式的增強功能。
-
XSINIL
-
指定為 NULL 列值建立其 xsi:nil 屬性設定為 True 的元素。該選項只能與 ELEMENTS 指令一起指定。有關詳細資料,請參閱使用 XSINIL 參數產生 NULL 值對應的元素。
-
ABSENT
-
指示對於空列值,將不在 XML 結果中添加對應的 XML 元素。該選項只能與 ELEMENTS 一起指定。
-
PATH [ ('ElementName') ]
-
為結果集中的每一行產生 <row> 元素封裝。(可選)可以為 <row> 元素封裝指定元素名稱。如果提供了Null 字元串(例如 FOR XML PATH ('')),則不產生封裝元素。使用 PATH 可能為使用 EXPLICIT 指令所編寫的查詢提供更簡單的代替方案。有關詳細資料,請參閱使用 PATH 模式。
-
BINARY BASE64
-
指定查詢返回二進位 base64 編碼格式的位元據。使用 RAW 和 EXPLICIT 模式檢索位元據時,必須指定該選項。這是 AUTO 模式中的預設值。
-
TYPE
-
指定查詢以 xml 類型返回結果。有關詳細資料,請參閱 FOR XML 查詢中的 TYPE 指令。
-
ROOT [ ('RootName') ]
-
指定將一個頂級元素添加到結果 XML 中。(可選)可以指定要產生的根項目名稱。如果不指定可選的根名稱,則添加預設的 <root> 元素。
樣本
以下樣本指定具有 TYPE 和 XMLSCHEMA 選項的 FOR XML AUTO。由於有 TYPE 選項,因此,結果集將作為 xml 類型返回到用戶端。XMLSCHEMA 選項指定在所返回的 XML 資料中包括內聯 XSD 架構,而 ELEMENTS 選項指定 XML 結果是以元素為中心的。
複製代碼
USE AdventureWorks;GOSELECT ContactID, FirstName, LastName, PhoneFROM Person.ContactWHERE LastName LIKE 'G%'ORDER BY LastName, FirstNameFOR XML AUTO, TYPE, XMLSCHEMA, ELEMENTS XSINIL;
http://msdn2.microsoft.com/zh-cn/library/ms173812.aspx