SQL Server 2005中XML操作函数详解

我是大长腿L

我是大长腿L

2016-02-19 19:01

每个人都希望每天都是开心的,不要因为一些琐事扰乱了心情还,闲暇的时间怎么打发,关注图老师可以让你学习更多的好东西,下面为大家推荐SQL Server 2005中XML操作函数详解,赶紧看过来吧!

  首先要明确一个基本原则,XML类型的数据之间以及XML类型与其它数据类型之间都是不能比较的,也就是说XML类型的数据不能出现在等号的任何一边。

  大致可分为查询类,修改类和跨域查询类。

  查询类包含query(),value(),exist()和nodes().

  修改类包含modify().

  跨域查询类包含sql:variable()和sql:column().

  查询类

  1. query()方法:返回满足条件的所有XML行。只能用于SELECT子句当中。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)

  2. value()方法:返回从XML节点中提取的标量值。必须在value()方法的第二个参数中指定所返回的标量的数据类型,所以value()方法可以与其它标量进行比较。可用于SELECT子句和WHERE子句。

  3. exist()方法:返回int型标量的0或者1。对每行的XML数据类型进行存在性检查。可用于SELECT子句和WHERE子句。

  4. nodes()方法:返回只有一个栏位的table,且该table的栏位是XML数据类型。所以nodes()方法只能出现在FROM子句中。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)

  示例:

  1.query()

SELECT pk, xCol.query('/doc[@id = 123]//section')
FROM docs

  2.value()

SELECT xCol.value('data((/doc//section[@num = 3]/heading)[1])', 'nvarchar(max)')
FROM docs

  3.exist()

SELECT xCol.query('/doc[@id = 123]//section')
FROM   docs
WHERE  xCol.exist ('/doc[@id = 123]') = 1

  4.nodes()

SELECT nref.value('@genre', 'varchar(max)') LastName
FROM   docs CROSS APPLY xCol.nodes('//book') AS R(nref)

  修改类

  modify()方法:允许修改XML实例的某些部分,例如添加或删除子树,或者更新标量值(如将书的价格从9.99替换为39.99)。

  无返回值,只能用于SET子句中。

  --在指定位置添加子树('insert...after...')

UPDATE docs SET xCol.modify('
insert
<section num="2">
<heading>Background</heading>
</section>               
after (/doc/section[@num=1])[1]')

  --更改指定节点中的标量值('replace...with...')

UPDATE XmlCatalog
SET    Document.modify ('
default namespace = "http://myBooks"
replace value of (/bookstore/book[@ISBN=
"1-8610-0311-0"]/price)[1] with 49.99')

  跨域查询类

  如果数据驻留在关系数据类型的列和XML数据类型的列的组合中,就可能需要编写查询来组合关系数据处理和XML数据处理(组合的对象还可以是标量数据类型的SQL变量和XML数据),这样的查询就叫跨域查询。

  sql:variable()方法:可以在XQuery或XML DML表达式中应用SQL变量的值。

  sql:variable()

DECLARE @isbn varchar(20)
SET     @isbn = '0-7356-1588-2'
SELECT  xCol
FROM    docs
WHERE   xCol.exist ('/book[@ISBN = sql:variable("@isbn")]') = 1

  sql:column()方法:可以在XQuery或XML DML表达式中使用来自关系列的值。

展开更多 50%)
分享

猜你喜欢

SQL Server 2005中XML操作函数详解

Web开发
SQL Server 2005中XML操作函数详解

使用SQL Server 2005 FOR XML嵌套查询

编程语言 网络编程
使用SQL Server 2005 FOR XML嵌套查询

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

探讨SQL Server 2005的评价函数

SQLServer
探讨SQL Server 2005的评价函数

在SQL Server 2005中用XQuery分解XML数据

编程语言 网络编程
在SQL Server 2005中用XQuery分解XML数据

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

MS SQL SERVER2005 XML 最佳实践

SQLServer
MS SQL SERVER2005 XML 最佳实践

SQL Server 2005的XML支持与异常处理

编程语言 网络编程
SQL Server 2005的XML支持与异常处理

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Word 2018中的注释和修订功能详解

Word 2018中的注释和修订功能详解

XML开发入门基础:XML 树结构

XML开发入门基础:XML 树结构
下拉加载更多内容 ↓