时间:2021-07-01 10:21:17 帮助过:6人阅读
创建表
--创建表,包含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
SQLServer XML类型
标签: