XML DML 数据修改语言小节 (一)

/***************************************************

          作者:herowang(让你望见影子的墙)

         日期:2009.10.18

          注:    转载请保留此信息

****************************************************/

 一、XML 数据修改语言

 insert

       Expression1 (

                 {as first | as last} into | after | before

                                    Expression2

                )

Expression1 :标识要插入的一个或多个节点。

Expression2 :目标标识节点。

into :Expression1 标识的节点作为 Expression2 标识的节点的直接后代(子节点)插入。如果 Expression2 中的节点已有一个或多个子节点,则必须使用 as first 或 as last 来指定所需的新节点添加位置。例如,分别在子列表的开头或末尾。插入属性时忽略 as first 和 as last 关键字。

after :Expression1 标识的节点作为 Expression2 标识的节点的同级节点直接插入在其后面。after 关键字不能用于插入属性。

before :Expression1 标识的节点作为 Expression2 标识的节点的同级节点直接插入在其前面。before 关键字不能用于插入属性。

 
declare @myxml xml    
set @myxml='<?xml version="1.0" encoding="gb2312"?>     
            <root>     
               <item id="1">     
               </item>     
            </root>'    
select @myxml      
 
--1、插入item的第一个子元素     
  set @myxml.modify('insert <course1>sql server2005</course1>  into (root/item)[1]') 
--2、插入item的第一个子元素,插入到同级子元素前面  
  set @myxml.modify('insert <sname> 王一诺</sname> as first into (root/item)[1]')   
--3、插入item的第一个子元素,插入到同级子元素后面   
  set @myxml.modify('insert <grade>82</grade> as last into (root/item)[1]')   
--4、插入第二个item节点   
  set @myxml.modify('insert <item id="2" year="2009"></item> into (/root)[1]')  
--或者    
  set @myxml.modify('insert <item id="2" year="2009"></item> after (/root/item)[1]')   
--5、向第二个item节点插入多个元素   
   set @myxml.modify('insert (<sname>王海</sname>,<course1>sql server2005</course1>,<grade>75</grade>) into (/root/item)[2]')   
 --6、插入属性   
   set @myxml.modify('insert attribute year{"2009"} into (/root/item)[1]')  
   select @myxml   
--7、插入多个属性     
  set @myxml.modify('insert (attribute depart{"计算机"},attribute class{"1班"}) into (/root/item)[1]')   
--8、插入文本节点   
  set @myxml.modify('insert text{"成绩表"} as first into  (/root)[1]')    
--9、插入整个节点 
  set @myxml.modify('insert <item id="3"  year="2009">    
                           <sname>王若天</sname>    
                           <course1>oracle</course1>    
                           <grade>59</grade></item>     
                     into (/root)[1]')   
--10、插入处理指令   
  SET @myxml.modify('insert <?Program ="Instructions.exe" ?> before (/root)[1] ')      
  select @myxml 

 

原文地址:https://www.cnblogs.com/trieagle/p/1629938.html