SQL XML 类型replace 操作

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

 还是一起来看看Sample:

 

代码

--创建测试数据库
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


 


 

 

 

posted @ 2009-12-27 18:00  沉浮  阅读(877)  评论(0编辑  收藏  举报