码迷,mamicode.com
首页 > 数据库 > 详细

SQLServer XML类型

时间:2015-05-31 10:52:36      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:

SQL Server从2005起开始支持xml类型,这个数据类型对于后期的改变非常有用。一对多的关系在后期变成了多对多的关系,XML类型就是一个不错的选择。

  1、创建测试数据

  创建表

  --创建表,包含Xml类型列
  CREATE TABLE Person
  (
      Id int,
      Info xml
  )

  插入测试数据

  --插入3条测试数据
  INSERT Person VALUES(1,<Person><ID>1</ID><Name>刘备</Name></Person>)
  INSERT Person VALUES(2,<Person><ID>2</ID><Name>关羽</Name></Person>)
  INSERT Person VALUES(3,<Person><ID>3</ID><Name>张飞</Name></Person>‘)

  2、查询节点内容

  query()方法

  --查询节点内容query()方法
  SELECT Id,Info.query((/Person/Name)[1]‘) FROM Person WHERE ID = 2

  3、查询值

  value()方法

  --查询值value()方法
  SELECT Id,Info.value((/Person/Name)[1]‘,VARCHAR(50)‘) FROM Person WHERE ID = 2
  SELECT * FROM Person WHERE Info.value((/Person/Name)[1]‘,VARCHAR(50)‘) = 张飞

  4、查询是否存在

  exist()方法

  --查询是否存在 exist()方法
  SELECT * FROM Person WHERE Info.exist((/Person/Name)[1]‘) = 1

  5、查询节点

  nodes()方法

  --查询节点   SELECT T2.Loc.query(.)
  FROM Person
  CROSS APPLY Info.nodes(/Person/Name‘) as T2(Loc)

  6、修改XML

  modify()方法

  1、增加节点

 
  --modify(insert)增加节点
  UPDATE Person SET 
  Info.modify(
      insert
      <Age>25</Age>
      into (/Person)[1]
  )
  WHERE Id = 3
 

  2、删除节点

  -- 删除节点内容(xQuery知识,没有text()就直接删除节点)
  UPDATE Person
  SET Info.modify(
    delete  (/Person)[1]/Age/text()
  )
  where ID = 3

SQLServer XML类型

标签:

原文地址:http://www.cnblogs.com/feng-NET/p/4541571.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!