Transact-SQL for子句

來源:互聯網
上載者:User
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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.