TSQL 如果其子元素包含给定值,则删除 XML 节点 [英] TSQL Delete XML node if its child element contains a given value
本文介绍了TSQL 如果其子元素包含给定值,则删除 XML 节点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
XML 存储可以在
下有零个或多个 节点需要查询以删除
节点.= '2 教堂巷'
XML Storage can have zero or more <Address>
nodes under <Addresses>
Need a query to delete any <Address>
nodes whose <AddressLine> = '2 Church Lane'
开始 XML:
declare @t table (storage xml);
insert into @t (storage)
select '<Person>
<Fullname />
<Surname>Smith</Surname>
<FirstName>John</FirstName>
<Addresses>
<Address>
<AddressLine>1 Church Lane</AddressLine>
</Address>
<Address>
<AddressLine>2 Church Lane</AddressLine>
</Address>
<Address>
<AddressLine>3 Church Lane</AddressLine>
</Address>
</Addresses>
</Person>';
结果 XML:
<Person>
<Fullname />
<Surname>Smith</Surname>
<FirstName>John</FirstName>
<Addresses>
<Address>
<AddressLine>1 Church Lane</AddressLine>
</Address>
<Address>
<AddressLine>3 Church Lane</AddressLine>
</Address>
</Addresses>
</Person>
推荐答案
找到了:
update @t
SET storage.modify('
delete (/Person/Addresses/Address[AddressLine = "2 Church Lane"])
')
这篇关于TSQL 如果其子元素包含给定值,则删除 XML 节点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文