SQL Server从2005起开始支持xml类型,这个数据类型对于后期的改变非常有用。一对多的关系在后期变成了多对多的关系,XML类型就是一个不错的选择。
1、创建测试数据
创建表
--创建表,包含Xml类型列 CREATE TABLE Person ( Id int, Info xml )
插入测试数据
--插入3条测试数据 INSERT Person VALUES(1,'<Person><ID>1</ID><Name>刘备</Name></Person>') INSERT Person VALUES(2,'<Person><ID>2</ID><Name>关羽</Name></Person>') INSERT Person VALUES(3,'<Person><ID>3</ID><Name>张飞</Name></Person>')
2、查询节点内容
query()方法
--查询节点内容query()方法 SELECT Id,Info.query('(/Person/Name)[1]') FROM Person WHERE ID = 2
3、查询值
value()方法
--查询值value()方法 SELECT Id,Info.value('(/Person/Name)[1]','VARCHAR(50)') FROM Person WHERE ID = 2 SELECT * FROM Person WHERE Info.value('(/Person/Name)[1]','VARCHAR(50)') = '张飞'
4、查询是否存在
exist()方法
--查询是否存在 exist()方法 SELECT * FROM Person WHERE Info.exist('(/Person/Name)[1]') = 1
5、查询节点
nodes()方法
--查询节点
SELECT T2.Loc.query('.') FROM Person CROSS APPLY Info.nodes('/Person/Name') as T2(Loc)
6、修改XML
modify()方法
1、增加节点
--modify(insert)增加节点 UPDATE Person SET Info.modify(' insert <Age>25</Age> into (/Person)[1]' ) WHERE Id = 3
2、删除节点
-- 删除节点内容(xQuery知识,没有text()就直接删除节点) UPDATE Person SET Info.modify(' delete (/Person)[1]/Age/text()' ) where ID = 3
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
2013-04-11 配置文件的读写