XML类型的删除操作

前篇XML插入的文章,由于疏忽,可能给一些朋友带来误解。这篇是关于XML类型的删除操作。

在这里再说明下,对XML的操作,不仅需要注意命名空间的问题,同时还需要注意大小写。XML对大小写是敏感的。

 

 

ExpandedBlockStart.gif 代码

-- 创建测试数据库
CREATE   DATABASE  mytest;
GO

USE  mytest;
GO

-- 创建测试表
CREATE   TABLE  Users
(
    ID 
INT   IDENTITY ( 1 , 1 ),
    UserInfo XML

)

/* ****************删除节点属性**************************** */     
     
    
-- -插入测试数据
     DECLARE   @xml  XML
    
SET   @xml = ' <root>
    <user id="1">
        text
        <userid>1</userid>
        <userName>test1</userName>
    </user>
    </root>
'
    
INSERT   INTO  Users(UserInfo) VALUES ( @xml )

-- DELETE Users

UPDATE  Users  SET  UserInfo.modify( ' delete /root/user/@id ' )

select   *   from  Users

/* ****************删除节点**************************** */     


UPDATE  Users  SET  UserInfo.modify( ' delete /root/user/userid[1] ' )

select   *   from  Users



/* ****************删除节点中的文本**************************** */     


UPDATE  Users  SET  UserInfo.modify( ' delete /root/user/text() ' )

select   *   from  Users



/* ****************删除第二个节点(userName)**************************** */     


UPDATE  Users  SET  UserInfo.modify( ' delete /root/user/*[2] ' )

select   *   from  Users



/* ****************根据属性值删除节点**************************** */     
 
    
-- -插入测试数据
     DECLARE   @xml  XML
    
SET   @xml = ' <root>
    <user id="1" a="a">
        <userid>1</userid>
        <userName>test1</userName>
    </user>
    <user id="2" b="b">
        <userid>1</userid>
        <userName>test1</userName>
    </user>
    </root>
'
    
INSERT   INTO  Users(UserInfo) VALUES ( @xml )

-- -删除属性
UPDATE  Users  SET  UserInfo.modify( ' delete /root/user[@id=1]/@a ' )

select   *   from  Users

-- -删除节点
UPDATE  Users  SET  UserInfo.modify( ' delete /root/user[@id=1]/userName ' )

select   *   from  Users

 

 

 

转载于:https://www.cnblogs.com/stevenshi/archive/2009/12/27/1633436.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值