SQLServer XML類型


  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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM