Выбрать все xml, исключить один конкретный узел SQL Server - PullRequest
0 голосов
/ 15 января 2012

У меня есть столбец, в котором хранится XML с использованием типа данных SQL Server Xml.Кроме того, у меня есть запрос Xpath, который может выбрать один узел из XML, который я хочу удалить.Итак, мой вопрос: есть ли способ выбрать все xml в столбце, КРОМЕ одного конкретного узла, который мне нужно удалить?Я могу выбрать узел, который хочу удалить, но не могу найти способ удалить его из остальной части xml и оставить все остальное без изменений.Если бы кто-нибудь мог дать мне какое-либо руководство о том, как сделать это с помощью функции SQL Server Xml, это было бы очень полезно.

1 Ответ

2 голосов
/ 15 января 2012

Вы можете сделать это так:

DECLARE @xml XML
SELECT @xml = YourXmlField
FROM YourTable
WHERE ID = 1

SET @xml.modify('delete /Root/A')
SELECT @xml

Таким образом, вам нужно поместить значение в переменную XML и использовать модификатор для удаления узла, предоставив соответствующий XPath для узла для удаления.

...