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')]
    采用查询结果并将结果集中的每一行转换为将通用标识符 <row /> 作为元素标记的 XML 元素。使用此指令时,可以选择指定行元素的名称。产生的 XML 将把指定的 ElementName 用作为每行生成的行元素。有关详细信息,请参阅使用 RAW 模式新增的 FOR XML 功能
  • AUTO
    以简单的嵌套 XML 树返回查询结果。FROM 子句中的每个表(在 SELECT 子句中至少为其列出了一列)都表示为一个 XML 元素。SELECT 子句中列出的列映射到适当的元素属性。有关详细信息,请参阅使用 AUTO 模式新增的 FOR XML 功能
  • EXPLICIT
    指定显式定义产生的 XML 树的形状。使用此模式时,必须以一种特定的方式编写查询,以便显式指定所需嵌套的其他信息。有关详细信息,请参阅使用 EXPLICIT 模式新增的 FOR XML 功能
  • PATH
    提供一种更简单的方式来混合元素和属性,并引入表示复杂属性的其他嵌套。可以使用 FOR XML EXPLICIT 模式查询从行集中构造这种 XML,但 PATH 模式针对可能很烦琐的 EXPLICIT 模式查询提供了一种更简单的替代方式。通过 PATH 模式,以及用于编写嵌套 FOR XML 查询的功能和返回 xml 类型实例的 TYPE 指令,您可以编写简单的查询。它为编写大多数 EXPLICIT 模式查询提供了一个替代方式。默认情况下,PATH 模式为结果集中的每一行生成一个 <row> 元素包装。您还可以选择指定元素名称。如果这样,则指定的名称用作包装元素名称。如果提供空字符串 (FOR XML PATH ('')),则不会生成任何包装元素。有关详细信息,请参阅使用 PATH 模式
  • XMLDATA
    指定应返回内联 XML 数据简化 (XDR) 架构。文档的架构被预置为内联架构。有关使用示例,请参阅 使用 RAW 模式
  • XMLSCHEMA
    返回内联 W3C XML 架构 (XSD)。指定此指令时,可以选择指定目标命名空间 URI。这样将返回架构中指定的命名空间。有关详细信息,请参阅内联 XSD 架构生成。有关工作示例,请参阅使用 RAW 模式
  • ELEMENTS
    如果指定 ELEMENTS 选项,则列作为子元素返回。否则,列将映射到 XML 属性。只在 RAW、AUTO 和 PATH 模式中支持此选项。使用此指令时,可以选择指定 XSINIL 或 ABSENT。XSINIL 指定为 NULL 列值创建 xsi:nil 属性设置为 True 的元素。默认情况下,或者与 ELEMENTS 一起指定了 ABSENT 时,不会为 NULL 值创建任何元素。有关工作示例,请参阅使用 RAW 模式使用 AUTO 模式
  • BINARY BASE64
    如果指定 BINARY Base64 选项,则查询所返回的任何二进制数据都用 base64 编码格式表示。若要使用 RAW 和 EXPLICIT 模式检索二进制数据,必须指定此选项。在 AUTO 模式中,默认情况下将二进制数据作为引用返回。有关工作示例,请参阅使用 RAW 模式
  • ROOT [('RootName')]
    指定向产生的 XML 中添加单个顶级元素。可以选择指定要生成的根元素名称。默认值为“root”。

请参阅

参考

使用 RAW 模式
使用 AUTO 模式
使用 EXPLICIT 模式
使用 FOR XML 构造 XML

概念

使用 PATH 模式

其他资源

SELECT (Transact-SQL)

帮助和信息

获取 SQL Server 2005 帮助