SQL XML的Replace操作
2011-09-06 09:51 Eric.Hu 阅读(1457) 评论(0) 编辑 收藏 举报SQL XML的Replace操作
--创建测试数据库
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"
)')
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
着意耕耘,自有收获。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器