SQLServer XML数据的五种基本操作

 更新时间:2009年07月22日 08:01:11   作者:  
SQLServer 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
关于modify内容,请参见下一篇文章。

相关文章

  • 详解SQL Server的聚焦过滤索引

    详解SQL Server的聚焦过滤索引

    本文主要讲解了通过过滤索引来提高查询性能,同时也给出了其不同的场景以及其使用优点和明显的缺点。简短的内容,深入的理解,有兴趣的朋友可以看下
    2016-12-12
  • sql server排查死锁优化性能

    sql server排查死锁优化性能

    这篇文章介绍了sql server排查死锁优化性能的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • Android实现矩形区域截屏的方法

    Android实现矩形区域截屏的方法

    对屏幕进行截屏并裁剪有两种方式:早截图和晚截图,对于早截图和晚截图的概念大家通过本文详解学习。本文重点给大家介绍android实现矩形区域截屏的方法,需要的朋友参考下
    2017-01-01
  • win2008 r2 安装sql server 2005/2008 无法连接服务器解决方法

    win2008 r2 安装sql server 2005/2008 无法连接服务器解决方法

    在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接
    2015-01-01
  • 亲自教你使用 ChatGPT 编写 SQL JOIN 查询示例

    亲自教你使用 ChatGPT 编写 SQL JOIN 查询示例

    这篇文章主要介绍了使用ChatGPT编写SQL JOIN查询,作为一种语言模型,ChatGPT 可以就如何构建复杂的 SQL 查询和 JOIN 提供指导和建议,但它不能直接访问 SQL 数据库,它可以帮助您了解语法、最佳实践和有关如何构建查询以高效执行的一般指导,需要的朋友可以参考下
    2023-02-02
  • SQL Server快速彻底卸载实例方法分享

    SQL Server快速彻底卸载实例方法分享

    最近在安装了SQL Server后,当由于某些原因我们需要卸载它时,我们应该怎么操作呢?这篇文章主要给大家介绍了关于SQL Server快速彻底卸载的相关资料,需要的朋友可以参考下
    2023-10-10
  • 探讨:如何查看和获取SQL Server实例名

    探讨:如何查看和获取SQL Server实例名

    本篇文章是对如何查看和获取SQL Server实例名进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • SQL优化技巧指南

    SQL优化技巧指南

    这篇文章主要介绍了SQL优化的方方面面的技巧,以及应注意的地方,需要的朋友可以参考下
    2014-08-08
  • MSSQL木马修复,中木马后的处理方法

    MSSQL木马修复,中木马后的处理方法

    MSSQL木马修复,中木马后的处理方法,需要的朋友可以参考一下
    2013-03-03
  • sqlserver not in 语句使程充崩溃

    sqlserver not in 语句使程充崩溃

    以前一直以为优化在百万级的表中才会有意义,这次的事件改变了我的看法
    2011-12-12

最新评论