SQL Server 2005 XML 操作总结(一)入门

本文总结了SQL Server 2005中XML操作的关键知识点,包括XML的基本概念、XPath寻址语言及XQuery标准查询语言的使用方法。详细介绍了XQuery中的exist、query、value和nodes函数,并提供了不含命名空间的XML操作示例。

    最近在做xml的数据迁移工作,需要将符合旧版本xsd的xml字段迁移到新版本上,因此期间查阅了很多相关资料。目前迁移工作已完成,综合所有资料和自己的实际应用,将“SQL Server 2005XML操作”总结为八篇文章,一方面作为自己以后查阅的依据,另一方面也希望对大家有所帮助,其中有借鉴自网络的部分,也有自己总结的部分,总结的比较仓促,难免有疏漏之处,欢迎大家批评指正!

1、xml:   能认识元素、属性和值

2、xpath:    寻址语言【类似windows目录的查找】

语法格式,这些语法可以组合为条件:

"."表示自己,".."表示父亲,"/"表示儿子,"//"表示后代,

"name"表示按名字查找,"@name"表示按属性查找

"集合[条件]" 表示根据条件取集合的子集,条件可以是:

数  值:数字,last(),last()-数字 等

布尔值:position()<数字,@name='条件',name='条件'

【条件是布尔值的时候可以合并计算:and or】

3、xquery:    基于xpath标的准查询语言,sqlserver xquery包含如下函数:

      exist(xpath条件):返回布尔值表示节点是否存在
      query(xpath条件):返回由符合条件的节点组成的新的xml文档
      value(xpath条件,数据类型):返回指定的标量值,xpath条件结果必须唯一
      nodes(xpath条件): 返回由符合条件的节点组成的一行一列的结果表,将 xml 数据类型实例拆分为关系数据,则 nodes() 方法非常有用。它允许您标识将映射到新行的节点。

(以上摘自http://blog.youkuaiyun.com/jinjazz

[注意]

      本系列中xml示例为不含命名空间的xml形式,若含有命名空间则需要在最前面加上"declare namespace [命名空间缩写]=[命名空间URL]"的字样,

      同时涉及到的节点需要加入命名空间缩写。

例如:

 


  
set @data .modify( ' insert <author>Erik E. Ray</author>
before (/bookstore/book[@category="WEB"]/author)[1] ' )

-- 需要改为
set @data .modify( ' declare namespace UI=http://schemas.com/sqlserver/BookStore ;
insert <UI:author>Erik E. Ray</UI:author> before (/UI: bookstore/UI:book[@category="WEB"]/UI:author)[1] '

转载于:https://www.cnblogs.com/FlyingPig-Nannan/archive/2011/03/04/1971054.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值