SQL XML 类型replace 操作

有了前边两篇的Insert 和Delete 的学习基础,replace 的操作应该是容易的多了。

 还是一起来看看Sample:

 

ExpandedBlockStart.gif 代码

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

USE  mytest;
GO

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

)

/* ****************XML 的 Replace 操作**************************** */     
     
    
-- -插入测试数据
     DECLARE   @xml  XML
    
SET   @xml = ' <root>
    <user id="1">
        <userid>1</userid>
        <userName>test1</userName>
        <userName>test2</userName>
    </user>
    <user id="2">
        <userid>1</userid>
        <userName>test1</userName>
        <userName>test2</userName>
    </user>
    </root>
'
    
INSERT   INTO  Users(UserInfo) VALUES ( @xml )

-- DELETE Users
--
-- 替换节点中的Value
UPDATE  Users  SET  UserInfo.modify( ' replace value of( /root/user/userName[2]/text())[1]
    with " new userName "
' )

select   *   from  Users



-- -- 替换节点的属性值
UPDATE  Users  SET  UserInfo.modify( ' replace value of( /root/user/@id)[1]
    with " 1000 "
' )

select   *   from  Users



-- -- IF条件判断替换XML属性值
UPDATE  Users  SET  UserInfo.modify( ' replace value of( /root/user/@id)[1]
    with ( if (count(/root/user[1]/userName) > 1) then 
                "500" 
            else 
                "300" 
            )
' )

select   *   from  Users


-- -- IF条件判断替换XML属性值 ,判断id=300 
UPDATE  Users  SET  UserInfo.modify( ' replace value of( /root/user/@id)[1]
    with ( if ((/root/user/@id) = 2) then 
                "500" 
            else 
                "300" 
            )
' )

select   *   from  Users


 


 

 

 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值