Share via


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 資料行、資料表有唯一索引,且 FOR BROWSE 選項在傳給 SQL Server 執行個體的 SELECT 陳述式結尾,便可以在應用程式中瀏覽資料表。

    ms173812.note(zh-tw,SQL.90).gif附註:
    您不能在包括 FOR BROWSE 選項的 SELECT 陳述式中使用 <lock_hint> HOLDLOCK。

    FOR BROWSE 不能出現在 UNION 運算子所聯集的 SELECT 陳述式中。

    ms173812.note(zh-tw,SQL.90).gif附註:
    當資料表的唯一索引鍵資料行可設為 Null 時,資料表是在外部聯結的內側,瀏覽模式並不支援索引。
  • XML
    指定查詢結果要以 XML 文件來傳回。您必須指定下列 XML 模式之一:RAW、AUTO、EXPLICIT。如需有關 XML 資料和 SQL Server 的詳細資訊,請參閱<使用 FOR XML 建構 XML>。
  • RAW [ ('ElementName') ]
    取得查詢結果,將結果集中的每個資料列轉換成 XML 元素,且用一般識別碼 <row /> 來作為元素標記。您可以選擇性地指定資料列元素的名稱。產生的 XML 輸出利用指定的 ElementName 來作為針對每個資料列而產生的資料列元素。如需詳細資訊,請參閱<使用 RAW 模式>和<RAW 模式增強功能>。
  • AUTO
    在簡單的巢狀 XML 樹狀結構中,傳回查詢結果。在 SELECT 子句中至少列出一個資料行的 FROM 子句中的每份資料表,都會表示成一個 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
    指出對於 NULL 資料行值而言,不會在 XML 結果中加入對應的 XML 元素。請只搭配 ELEMENTS 來指定這個選項。
  • PATH [ ('ElementName') ]
    針對結果集中的每個資料列來產生 <row> 元素包裝函式。您可以選擇性地指定 <row> 元素包裝函式的元素名稱。如果提供空字串,如 FOR XML PATH ('') ),就不會產生包裝函式元素。使用 PATH 可能會針對利用 EXPLICIT 指示詞來撰寫的查詢提供較簡單的替代方案。如需詳細資訊,請參閱<使用 PATH 模式>。
  • BINARY BASE64
    指定查詢用二進位 Base64 編碼格式來傳回二進位資料。當您利用 RAW 和 EXPLICIT 模式來擷取二進位資料時,您必須指定這個選項。這是 AUTO 模式的預設值。
  • ROOT [ ('RootName') ]
    指定將單一最上層元素加入產生的 XML 中。您可以選擇性地指定要產生的根元素名稱。如果未指定選擇性的根名稱,就會加入預設 <root> 元素。

範例

下列範例指定設定了 TYPEXMLSCHEMA 選項的 FOR XML AUTO。由於 TYPE 選項,結果集會以 xml 類型傳回用戶端。XMLSCHEMA 選項指定將內嵌 XSD 結構描述包括在傳回的 XML 資料中,ELEMENTS 選項指定 XML 結果以元素為中心。

USE AdventureWorks;
GO
SELECT ContactID, FirstName, LastName, Phone
FROM Person.Contact
WHERE LastName LIKE 'G%'
ORDER BY LastName, FirstName 
FOR XML AUTO, TYPE, XMLSCHEMA, ELEMENTS XSINIL;

請參閱

參考

SELECT (Transact-SQL)

其他資源

使用 FOR XML 與 OPENXML 發行和處理 XML 資料

說明及資訊

取得 SQL Server 2005 協助