博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL Server2005 新数据类型XML
阅读量:6225 次
发布时间:2019-06-21

本文共 1249 字,大约阅读时间需要 4 分钟。

在SQL Server2005中继续延续了微软在.Net中的设计思想 将XML和.Net紧密地结合到其中.用.Net在Sql2005中写存储过程定义函数我还没有研究过,今天就只简单得谈谈XML在SQL2005中的应用.

相对SQLServer2000而言,2005在数据类型上最大的一点改变就是增加了XML这个数据类型.要把这个东西搞懂先就必须要懂XML.

在数据库中xml的定义和使用和一般的数据类型没有多大差别,比如:

  • 创建表: create table xmltable(id int primary key,xml1 xml)
  • 定义变量:declare @x xml

与一般的数据类型不同的是,xml下面直接提供了方法,可以对其中的数据进行操作.用到的方法有:

query('Query') 方法 返回xml 此方法用于对 XML 实例进行查询。

假设表xmlTest中有XML一字段xml1='<book id="1"><bookname>AJAX in Action</bookname> <price>10</price></book>' 那么执行

declare @xml1 xml;

select @xml1=xml1
from xmlTest
select @xml1.query('/book/bookname')

这个时候就可以查询到其下面BookName的xml值<bookname>AJAX in Action</bookname>

value('Query','type') 方法 返回具体类型 此方法用于从 XML 实例检索 SQL 类型的值。

比如执行:select @xml1.value('(/book/bookname)[1]','varchar(max)')

注意这里是[1]表示第一个数据,不是[0],返回结果:AJAX in Action

exist('Query') 方法 返回布尔值 此方法用于确定查询是否返回非空结果。

比如执行:select @xml1.exist('/book/id') 返回0,这里是查询/book/id,无法找到<book id="1">中的ID.

modify(XML_DML) 方法 此方法用于指定 XML DML 语句以执行更新。

比如执行:set @xml1.modify('insert <Author>Unknown</Author> after (/book/price)[1] ');

select @xml1这样就可以往原xml数据中插入一个属性,当然运行结果是:

<book id="1"><bookname>AJAX in Action</bookname><price>10</price><Author>Unknown</Author></book>

这里需要注意的是set和select不要混用.
nodes() 方法 此方法用于将 XML 拆分成多行以将 XML 文档的组成部分传播到行集中。

你可能感兴趣的文章
端口监听与telnet
查看>>
【eclipse】mybatis配置文件创建与mapper接口文件创建
查看>>
Shell编程进阶篇
查看>>
rsync mac->windows openssh
查看>>
ECSHOP任意页面显示指定分类、数量、排序的任意类型文章,包括只显示置顶or普通的文章...
查看>>
cacti和nagios监控web平台搭建
查看>>
Ipython安装
查看>>
Linux下查看tomcat控制台输出信息
查看>>
Linux direct io使用例子
查看>>
jmeter常用插件
查看>>
C# Winform打包部署时添加注册表信息实现开机自启动
查看>>
OC基础知识
查看>>
共享开发者账号
查看>>
python pandas 对各种文件的读写 IO tools
查看>>
团队工作总结
查看>>
用一个固定的数组实现栈和队列
查看>>
IOS中的属性列表----Property List
查看>>
IOS 生成本地验证码
查看>>
经典多普勒效应,相对论多普勒效应,以及质能方程
查看>>
站立会议1
查看>>