SQL Server操作XML(一)XML子句

一、以记录为核心

(1)path模式

select *

from 表名
for xml path

执行结果

<row>
  <TreeNode_ID>2</TreeNode_ID>
  <TreeNode_Name>1</TreeNode_Name>
 </row>

(2)raw模式

select *

from 表名
for xml raw

执行结果

<row TreeNode_ID="2" TreeNode_Name="1"  />

 

(3)auto模式

select *

from 表名
for xml auto

执行结果

<td_Tree_Node TreeNode_ID="2" TreeNode_Name="1"  />

 

二、以元素为核心

(1)path模式

select *

from 表名
for xml path,elements

执行结果

<row>
  <TreeNode_ID>2</TreeNode_ID>
  <TreeNode_Name>1</TreeNode_Name>
</row>

(2)Raw 模式

select *
from 表名
for xml raw,elements

执行结果

<row>
  <TreeNode_ID>2</TreeNode_ID>
  <TreeNode_Name>1</TreeNode_Name>
</row>

(3)Auto模式

select *
from 表名
for xml auto,elements

执行结果

<td_Tree_Node>
  <TreeNode_ID>2</TreeNode_ID>
  <TreeNode_Name>1</TreeNode_Name>
</td_Tree_Node>

三、可空支持

select *
from 表名

for xml path,elements xsinil

 执行结果

<row xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
  <TreeNode_ID>2</TreeNode_ID>
  <TreeNode_Name>1</TreeNode_Name>
  <Parent_ID xsi:nil="true" />

</row>

四、附加Schema结构

select *
from 表名

for xml auto ,xmlschema

执行结果

除了基本数据外,增加Schema结构的XML表述,如下所示

<xsd:schema targetNamespace="urn:schemas-microsoft-com:sql:SqlRowSet1" xmlns:schema="urn:schemas-microsoft-com:sql:SqlRowSet1" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sqltypes="http://schemas.microsoft.com/sqlserver/2004/sqltypes" elementFormDefault="qualified">
  <xsd:import namespace="http://schemas.microsoft.com/sqlserver/2004/sqltypes" schemaLocation="http://schemas.microsoft.com/sqlserver/2004/sqltypes/sqltypes.xsd" />
  <xsd:element name="td_Tree_Node">
    <xsd:complexType>
      <xsd:attribute name="TreeNode_ID" type="sqltypes:int" use="required" />
      <xsd:attribute name="TreeNode_Name" use="required">
        <xsd:simpleType>
          <xsd:restriction base="sqltypes:varchar" sqltypes:localeId="2052" sqltypes:sqlCompareOptions="IgnoreCase IgnoreKanaType IgnoreWidth">
            <xsd:maxLength value="50" />
          </xsd:restriction>
        </xsd:simpleType>
      </xsd:attribute>
       </xsd:complexType>
  </xsd:element>
</xsd:schema>

五、Root:自定制根元素名称

select *
from td_Tree_Node
for xml auto ,root('根节点')

执行结果

<根节点> 

    <td_Tree_Node TreeNode_ID="2" TreeNode_Name="1" />
</根节点>
六、Type:指明返回XML数据类型的结果,多用于嵌套查询

 

七、Path模式下XML格式化

select TreeNode_ID as "@TreeNode_ID",
       TreeNode_Name as  "Details/@Name",
       TreeNode_Code as "Details/text()"
from td_Tree_Node
for xml path

执行结果

<row TreeNode_ID="2">
  <Details Name="1">1</Details>
</row>

转载于:https://www.cnblogs.com/leep2007/archive/2012/06/09/2543044.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值