SQL 2005的数据修改语言(XML DML)(二)

日期: 2008-09-09 作者:张洪举 来源:TechTarget中国 英文






DECLARE @myDoc xml 
  SET @myDoc = ’
  
  
  ’
  select @myDoc
  SET @myDoc.modify(’
  insert (
  ,
  张洪举
  )
  into (/root/item)[1]’);
  select @myDoc
  GO
 


  (3)插入属性到文档中


  在下面的示例中,向XML文档中插入了多个属性。每次插入属性后,select语句都会显示结果,最终执行结果如图2所示。






DECLARE @myDoc xml 
  SET @myDoc = ’ 
  张洪举 
  ’ 
  select @myDoc 
  SET @myDoc.modify(’ 
  insert attribute ShipTo {“广州”} 
  into (/root/item[@ID=1])[1]’); 
  select @myDoc 


  – 通过一个sql变量指定要插入属性ShipDate的值


     





 DECLARE @ShipDate char(11) 
  SET @ShipDate=’2006-01-23Z’ 
  SET @myDoc.modify(’ 
  insert attribute ShipDate {sql:variable(“@ShipDate”) cast as xs:date ?} 
  into (/root/item[@ID=1])[1]’) ; 
  select @myDoc 

  – 插入多个属性,属性之间使用逗号分隔,并包含在括号内 


   




 SET @myDoc.modify(’ 
  insert ( 
  attribute PostCode {“253020” }, 
  attribute Weight {“1.5”} 
  ) 
  into (/root/item[@ID=1])[1]’); 
  select @myDoc 
  GO 
 


  插入属性到XML中


  图2插入属性到XML中


  (4)插入注释节点


  在下面的示例中,将注释节点插入到ID为2的item节点中







DECLARE @myDoc xml  
  SET @myDoc = ’ 
   
   
  张洪举 
   
   
   
  卢桂章 
   
  ’ 
  SET @myDoc.modify(’ 
  insert  
  after (/root/item[@ID=2]/title)[1]’); 
  select @myDoc 
  GO 


  插入注释后XML的内容如下 
 






  
  张洪举 
   
   
   
   
  卢桂章 
 


 (5)使用CDATA部分插入数据


  当插入的文本中包含有XML无效字符(如“<”或“>”)时,可以使用CDATA部分插入数据。参考下面的示例:    







 DECLARE @myDoc xml 
  SET @myDoc = ’ 
   
   
  张洪举 
   
   
   
  卢桂章 
   
  ’ 
  SET @myDoc.modify(’ 
  insert 上门<价款>未收]]> 
  into (/root/item[@ID=2])[1] ’) ; 
  select @myDoc 
  GO 



  被插入部分中的XML无效字符,会被转换成实体,如“<”保存为<。下面的插入CDATA部分后XML文档的内容: 
  
 






 张洪举 
   
   
   
  卢桂章 
  <送货方式>上门<价款>未收 
   
   



  (6)插入文本节点


  要将文件插入到XML中,需要使用text函数构造文本,参考下面的示例:


    




  DECLARE @myDoc xml  
  SET @myDoc = ’ 
   
   
  张洪举 
   
  ’ 
  SET @myDoc.modify(’ 
  insert text{“订单列表”} 
  as first into (/root)[1]’); 
  select @myDoc 
  GO 

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐