sqlserver 2005 xml字段的读写操作
2009-08-28 10:44
337 查看
最近在做项目的时候遇到了这个问题 从网上找到一些资料 所以转载过来 提供给那些遇到和没遇到过的朋友参考
文章转载于 http://hi.baidu.com/alexyeat/blog/item/8c0d2250cd93365b1138c229.html
文章转载于 http://hi.baidu.com/alexyeat/blog/item/8c0d2250cd93365b1138c229.html
sqlserver2005 有xml字段了,下面是关于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' 结果: 3.7 多表查询 例如:存在另外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 结果: |
相关文章推荐
- SQLSERVER 2005 实现文件读写操作
- sqlserver2005 xml字段的读写操作
- SQLSERVER 2005中使用sql语句对xml文件和其数据的进行操作(很全面)
- sqlserver2005 xml字段的读写操作
- SQLServer中对Xml字段的操作
- sqlserver2005 xml字段的读写操作
- SqlServer表中XML类型字段查询操作
- sqlserver2005 xml字段的读写操作
- 知方可补不足~sqlserver中对xml类型字段的操作
- SQL2005 XML字段常用操作语句
- SQL 2005 对xml 文件与 xml数据的操作
- opencv学习(十七)之XML和YAML文件读写操作
- XML文件读写操作
- asp.net 对XML 读写查操作
- xml读写操作
- 我整理的xml读写操作(sax方式)
- SQL SERVER 2005中使用sql语句对xml 文件和其数据的进行操作(很全面)
- SQL Server 2005 XML 操作总结(四)元素(节点)操作——插入操作
- SQL Server 2005 xml字段修改
- SQL对Xml字段的操作