SQL Xml字段的修改方法


  本文标签:SQL Xml字段

  SQL数据库中的Xml字段应该如何进行修改和删除操作呢?可能不少人都不是很了解  。下面就为您介绍SQL Xml字段的修改方法,供您参考  。

  SQL的修改操作包括更新和删除  。SQL提供了modify()方法,实现对SQL Xml字段的修改操作  。modify方法的参数为SQL Xml字段修改语言  。XML修改语言类似于SQL 的Insert、Delete、UpDate,但并不一样  。例如,我们希望将id为0001的书的价钱(price)修改为100, 我们就可以使用modify方法  。代码如下:
set @xmlDoc.modify(replace value of (/root/book[@id=0001]/price/text())[1] with "100")

  --得到id为0001的book节点
select @xmlDoc.query((/root/book[@id="0001"]))

  --删除节点id为0002的book节点
set @xmlDoc.modify(delete /root/book[@id=0002])
select @xmlDoc

  --添加节点
set @xmlDoc.modify(insert 78-596-134 before (/root/book[@id=0001]/price)[1])
select @xmlDoc.query((/root/book[@id="0001"]/isbn))

  添加和删除属性:当你学会对节点的操作以后,你会发现,很多时候,我们需要对节点进行操作  。这个时候我们依然使用modify方法,例如,向id为0001的book节点中添加一个date属性,用来存储出版时间  。代码如下:

  --添加属性
set @xmlDoc.modify(insert attribute date{"2008-11-27"} into (/root/book[@id=0001])[1])
select @xmlDoc.query((/root/book[@id="0001"]))

  --删除属性
set @xmlDoc.modify(delete root/book[@id="0001"]/@id)
select @xmlDoc.query((/root/book)[1])

  --修改属性
set @xmlDoc.modify(replace value of (root/book[@id="0001"]/@id)[1] with "0005")
select @xmlDoc.query((/root/book)[1])