sqlserver2005 xml字段的读写操作

于家傲天涯浪子

于家傲天涯浪子

2016-02-19 10:41

下面请跟着图老师小编一起来了解下sqlserver2005 xml字段的读写操作,精心挑选的内容希望大家喜欢,不要忘记点个赞哦!
1.创建xml字段
在表xmlTest内创建一个字段,命名_x,设置数据类型为xml。
2.写入xml
insert into xmlTest (_x) values('
root
item attr1="a1" attr2="a2"item11/item
item attr1="a1" attr2="a2"item12/item
/root
')
go
如此再插入一条记录:
insert into xmlTest (_x) values('
root
item attr1="b1" attr2="b2"item21/item
item attr1="b1" attr2="b2"item22/item
/root
')
3.查询数据
3.1 查询字段所有数据
select _x from xmlText
结果如图:

3.2 查询root下面的第一个item节点
select _x.query('root/item[1]')
from xmlTest
结果:

3.3 查询root下面的第一个item节点的值
select _x.value('(root/item)[1]','varchar(50)')
from xmlTest
结果:

3.3 查询root下面的第二个item节点的attr2属性值
select _x.value('(root/item/@attr2)[2]','varchar(50)')
from xmlTest
结果:

3.4 查询表中每条记录的xml字段的item节点值,全部列出来
SELECT t2.c1.value('.','varchar(20)') as items
from xmlTest
cross apply _x.nodes('root/item') as t2(c1)
结果:

3.5 查询表中id=1记录的xml的所有item字段的attr2属性值
SELECT t2.c1.value('@attr2','varchar(20)') as attr2
from xmlTest
cross apply _x.nodes('root/item') as t2(c1)
where id='1'

结果:

3.6 查询id为1的所有节点中attr1属性为a1的第一个匹配节点的attr2属性值

select _x.value('(root/item[@attr1="a1"]/@attr2)[1]','varchar(50)')
from xmlTest where id='1'

结果:

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

3.7 多表查询

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

例如:存在另外1个table:t2,其字段xmlid关联表xmlTest,而attr1关联xmlTest的_x字段中的attr1属性值。

查询表xmlTest中id=‘1'记录中_x字段内item节点中attr1为表t2中attr1字段值时,item节点中attr2的属性值

select xmlTest._x.value('(root/item[@attr1=sql:column("t2.attr1")]/@attr2)[1]','varchar(50)') as attr2,t2.attr1
from xmlTest join t2 on t2.xmlid=xmlTest.id
where xmlTest.id='1'

4.修改数据
4.1 修改表中id=1记录的第一个item节点值
UPDATE xmlTest
set _x.modify('replace value of (root/item/text())[1] with "xxxxx"')
where id='1'

select _x.query('root/item[1]') as item1
from xmlTest
结果:

4.2 修改表中id=2记录的第二个item节点的attr2属性值
UPDATE xmlTest
set _x.modify('replace value of (root/item/@attr2)[2] with "2222b"')
where id='2'

select _x.query('root/item[2]') as item1
from xmlTest
结果:

展开更多 50%)
分享

猜你喜欢

sqlserver2005 xml字段的读写操作

编程语言 网络编程
sqlserver2005 xml字段的读写操作

SQLServer2005 XML数据操作代码

编程语言 网络编程
SQLServer2005 XML数据操作代码

s8lol主宰符文怎么配

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

关于SQLServer2005的学习笔记 XML的处理

编程语言 网络编程
关于SQLServer2005的学习笔记 XML的处理

SQLServer2005分解并导入xml文件

编程语言 网络编程
SQLServer2005分解并导入xml文件

lol偷钱流符文搭配推荐

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

SQLServer2005 的查询独占模拟

编程语言 网络编程
SQLServer2005 的查询独占模拟

SQLServer2005 中的几个统计技巧

编程语言 网络编程
SQLServer2005 中的几个统计技巧

lolAD刺客新符文搭配推荐

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

sql2005开发版 没有任何功能可以安装

sql2005开发版 没有任何功能可以安装

简单的AJAX实现(HELLO AJAX)

简单的AJAX实现(HELLO AJAX)
下拉加载更多内容 ↓