Как удалить несколько узлов из XML-файла в SQL server
Привет,
у меня есть xml, как показано ниже
declare @xml xml = '<my><Fields><Fields_1>1</Fields_1><Fields_2>2</Fields_2><Fields_3>4</Fields_3> </Fields></my>'
Я хочу удалить несколько узлов в одном операторе sql.
т. е. мне нужен sql-запрос, чтобы удалить два узла, скажем, Field_1 и Field_2 динамически.
XML будет окончательным следующим образом:-
'<my><Fields><Fields_3>4</Fields_3> </Fields></my>'
Что я уже пробовал:
Я обнаружил, что это достижимо с помощью
SET @xml.modify(' delete ( /my/Fields/Fields_1, /my/Fields/Fields_2 ) ')
Однако мое требование состоит в том, чтобы узлы создавались динамически. ,
скажем @node_1 = '
/my/Fields/Fields_1'
@node_2 = '
/my/Fields/Fields_2'
и нужно выполнить удаление.
Я хочу создать вышеописанный запрос динамически для удаления нескольких узлов или есть какой-то другой способ достичь этого, например, что-то вроде:-
<pre>SET @xml.modify(' delete ( @node1, @node2 ) ')