SQLServer XML数据的五种基本操作_MsSql

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内容,请参见下一篇文章。

时间: 2024-08-30 14:22:45

SQLServer XML数据的五种基本操作_MsSql的相关文章

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

SQL Server解析XML数据的方法详解_MsSql

本文实例讲述了SQL Server解析XML数据的方法.分享给大家供大家参考,具体如下: --5.读取XML --下面为多种方法从XML中读取EMAIL DECLARE @x XML SELECT @x = ' <People> <dongsheng> <Info Name="Email">dongsheng@xxyy.com</Info> <Info Name="Phone">678945546</

Linux操作系统之rpm五种基本操作分享

  Linux操作系统现在已经成为流行的操作系统,很多的人都开始学习,Linux操作系统包括了很多的专业知识,今天和大家讲讲Linux操作系统中的rpm基本操作.希望你学会本文中提到rpm的五种基本操作知识,会对你有所帮助.rpm有五种基本的操作方式(不包括创建软件包): 安装, 卸载, 升级, 查询,和验证. 下面我们就来逐一的讲解吧. 一. 安装rpm包 rpm 软件包通常具有类似foo-1.0-1.i386.rpm 的文件名.其中包括软件包的名称(foo),版本号(1.0),发行号(1),

Android XML数据的三种解析方式_Android

本篇文章包含以下内容:      XML数据的Dom解析      XML数据的Sax解析      XML数据的Pull解析      Activity中使用三种解析      Sax解析与Pull解析区别 三种解析方式的步骤: 1.在Assets文件夹中模拟创建XML数据 2.创建对应XML的Bean对象 3.开始解析 XML数据的Dom解析 DOM解析XML文件时,会将XML文件的所有内容读取到内存中(内存的消耗比较大),然后允许您使用DOM API遍历XML树.检索所需的数据 一.在As

SQLServer导出数据到MySQL实例介绍_MsSql

1从SQLServer导出数据 执行BCP: bcp "..." queryout "F:\test.txt" -c –S1.2.3.4 -Usa -P1111 命令参数含义: (1) 导入. 这个动作使用in命令完成,后面跟需要导入的文件名. (2) 导出. 这个动作使用out命令完成,后面跟需要导出的文件名. (3) 使用SQL语句导出. 这个动作使用queryout命令完成,它跟out类似,只是数据源不是表或视图名,而是SQL语句. (4) 导出格式文件. 这

获取SqlServer存储过程定义的三种方法_MsSql

存储过程的概念     存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行.     存储过程中可以包含逻辑控制语句和数据操纵语句,它可以接受参数.输出参数.返回单个或多个结果集以及返回值.     由于存储过程在创建时即在数据库服务器上进行了编译并存储在数据库中,所以存储过程运行要比单个的SQL语句块要快.同时由于在调用时只需用提供存储过程名和必要的参数信息,所以在一定程度上也可以减少网络流量.简单网络负担. 存

一起谈.NET技术,在ASP.NET网页间传递数据的五种方法

重点总结 目前为止在ASP.NET网页中传递数据的方式至少有5种: 1.通过查询字符串传递数据. 2.通过HTTP POST传递数据. 3.通过会话状态传递数据. 4.通过源页的公共属性传递数据. 5.通过源页中的控件值传递数据. 到底使用哪种方式来进行数据的传递,这可能受到两方面的影响: 1.页面重定向的方式. 2.源页和目标页是否位于相同的ASP.NET应用程序中. 如果源页和目标页位于不同的ASP.NET应用程序中则只能通过查询字符串和HTTP POST传递数据. 而如果源页和目标页位于相

在ASP.NET网页间传递数据的五种方法

重点总结 目前为止在ASP.NET网页中传递数据的方式至少有5种: 1.通过查询字符串传递数据. 2.通过HTTP POST传递数据. 3.通过会话状态传递数据. 4.通过源页的公共属性传递数据. 5.通过源页中的控件值传递数据. 到底使用哪种方式来进行数据的传递,这可能受到两方面的影响: 1.页面重定向的方式. 2.源页和目标页是否位于相同的ASP.NET应用程序中. 如果源页和目标页位于不同的ASP.NET应用程序中则只能通过查询字符串和HTTP POST传递数据. 而如果源页和目标页位于相

SQLServer 批量插入数据的两种方法_MsSql

运行下面的脚本,建立测试数据库和表值参数. 复制代码 代码如下: --Create DataBase create database BulkTestDB; go use BulkTestDB; go --Create Table Create table BulkTestTable( Id int primary key, UserName nvarchar(32), Pwd varchar(16)) go --Create Table Valued CREATE TYPE BulkUdt A