zoukankan      html  css  js  c++  java
  • SQL Server 中对XML数据的五种基本操作

    1.xml.exist
       输入为XQuery表达式,返回0,1或是Null。0表示不存在,1表示存在,Null表示输入为空
    2.xml.value
       输入为XQuery表达式,返回一个SQL Server标量值
    3.xml.query
       输入为XQuery表达式,返回一个SQL Server XML类型流
    4.xml.nodes
       输入为XQuery表达式,返回一个XML格式文档的一列行集
    5.xml.modify
       使用XQuery表达式对XML的节点进行insert , update 和 delete 操作。

    下面通过例子对上面的五种操作进行说明:

    declare @XMLVar xml = '

    <catalog> 

           <book category="ITPro">   

                  <title>Windows Step By Step</title>   

                  <author>Bill Zack</author>   

                  <price>49.99</price> 

           </book> 

           <book category="Developer">   

                  <title>Developing ADO .NET</title>   

                  <author>Andrew Brust</author>   

                  <price>39.93</price> 

           </book> 

           <book category="ITPro">   

                  <title>Windows Cluster Server</title>   

                  <author>Stephen Forte</author>   

                  <price>59.99</price> 

           </book>

    </catalog>'

    1. xml.exist

       select @XMLVar.exist('/catalog/book')-----返回1  

       select @XMLVar.exist('/catalog/book/@category')-----返回1  

       select @XMLVar.exist('/catalog/book1')-----返回0  

       set @XMLVar = null  

       select @XMLVar.exist('/catalog/book')-----返回null

    2.xml.value

       select @XMLVar.value('/catalog[1]/book[1]','varchar(MAX)')  

       select @XMLVar.value('/catalog[1]/book[2]/@category','varchar(MAX)')  

       select @XMLVar.value('/catalog[2]/book[1]','varchar(MAX)')  

       结果集为:  

       Windows Step By StepBill Zack49.99   Developer   NULL

    3.xml.query

       select @XMLVar.query('/catalog[1]/book')   

       select @XMLVar.query('/catalog[1]/book[1]')  

       select @XMLVar.query('/catalog[1]/book[2]/author')

       结果集分别为:
    <book category="ITPro">
      <title>Windows Step By Step</title>
      <author>Bill Zack</author>
      <price>49.99</price>
    </book>
    <book category="Developer">
      <title>Developing ADO .NET</title>
      <author>Andrew Brust</author>
      <price>39.93</price>
    </book>
    <book category="ITPro">
      <title>Windows Cluster Server</title>
      <author>Stephen Forte</author>
      <price>59.99</price>
    </book>


    <book category="ITPro">
      <title>Windows Step By Step</title>
      <author>Bill Zack</author>
      <price>49.99</price>
    </book>


    <author>Andrew Brust</author>

    4.xml.nodes

       select T.c.query('.') as result from @XMLVar.nodes('/catalog/book') as T(c)  

       select T.c.query('title') as result from @XMLVar.nodes('/catalog/book') as T(c)

       结果集分别为:
    <book category="ITPro"><title>Windows Step By Step</title><author>Bill …………

    <book category="Developer"><title>Developing ADO .NET</title><author>Andrew …………
    <book category="ITPro"><title>Windows Cluster Server</title><author>Stephen …………


    <title>Windows Step By Step</title>
    <title>Developing ADO .NET</title>
    <title>Windows Cluster Server</title>

     5.xml.modify

  • 相关阅读:
    Git本地仓库push至GitHub远程仓库每次输入账户密码问题解决(亲测可行)
    Laravel5.5+ 区分前后端用户登录
    word 中Sentences、Paragraph等含义和用法
    Word转图片word
    Word文档编号工具,Word标题,图、表手动编号工具
    Word电子扫描器 Word文档转换为图片Pdf,Word文档扫描成Pdf工具
    如何用vba给一个word表格的最后插入一行
    PPT电子扫描仪 ppt转换为图片Pdf工具
    Word文档只读加密工具
    在c#应用程序中使用IrisSkin2.dll美化界面
  • 原文地址:https://www.cnblogs.com/cxd4321/p/2175402.html
Copyright © 2011-2022 走看看