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

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

  得到的XML结果如下:


  订单列表张洪举


  (7)将节点插入类型化的xml列中


  在下面的示例中,首先创建了一个架构集合,并建立了一个使用该架构集合的表。在使用Transact-SQL insert语句向表中插入一个符合架构约束的XML后,再使用XML DML insert向该XML中插入一个item节点。


  – 创建XML架构集合 







create XML SCHEMA COLLECTION MySchemas 
  AS 
  N’ 
  > 
  ’; 
  GO 


  – 创建包含xml数据类型列的表


    





create TABLE MyCustomer 
  (CustomerID int IDENTITY PRIMARY KEY, 
  CustomerItem xml(MySchemas)); 
  GO 

  – 向表中插入XML,该XML应当符合http://schemas.mybook.com/customerschemas命名空间架构的定义


    




  insert INTO MyCustomer 
  VALUES 
  (N’ 
  北方书城 
  北京市海淀区知春路22号 
  2222222 
  刘先生 
  ’); 

  – 使用XML DML insert插入另一个item节点到XML中


  




 update MyCustomer 
  SET CustomerItem.modify(’ 
  declare namespace CS=”http://schemas.mybook.com/customerschemas”; 
  insert ( 
  东图大厦 
  长春市朝阳大街99号 
  1111111 
  孙小姐 
  ) 
  into (/CS:customer)[1] ’) 
  where CustomerID=1; 
  select CustomerItem 
  FROM Mycustomer; 
  GO 

执行上面的select查询后,可以看到CustomerItem中的XML内容,如下所示:


     






北方书城 
  北京市海淀区知春路22号 
  2222222 
  刘先生 
  东图大厦 
  长春市朝阳大街99号 
  1111111 
  孙小姐 


  2.delete


  delete用于删除XML实例的节点。其语法格式如下: 







  delete Expression 

  Expression是要删除的节点的XQuery表达式。删除该表达式选择的所有节点,以及所选节点中的所有节点或值。表达式不能是根(/)节点。如果表达式返回空序列,则不进行删除,不返回错误。


  下面的示例演示了从非类型化的xml变量中删除指令、注释、属性、元素和节点的方法。在每次删除后都会显示XML,结果如图3所示。







 DECLARE @myDoc xml 
  SET @myDoc = ’ 
  这里是文本 
  张洪举 
  卢桂章 
  ’ 
  select @myDoc 



  – 删除注释  






 SET @myDoc.modify(’ 
  delete /root/comment() 
  ’) 
  select @myDoc 

  – 删除所有指令






   SET @myDoc.modify(’ 
  delete //processing-instruction() 
  ’) 
  select @myDoc 

  – 删除ID为1的item中的文本节点 

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

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

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

相关推荐