XML Storage can have zero or more <Address>
nodes under <Addresses>
Need a query to delete any <Address>
nodes whose <AddressLine> = '2 Church Lane'
Starting 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>';
Resulting 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>
Found it:
update @t
SET storage.modify('
delete (/Person/Addresses/Address[AddressLine = "2 Church Lane"])
')
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.