Usuwanie wielu węzłów w pojedynczym XQuery dla SQL Server
Mam:
stół zxml wpisz kolumnę (lista identyfikatorów)naxml typ parametru (także lista identyfikatorów)Jaki jest najlepszy sposób usunięcia węzłów z kolumny, które pasują do węzłów w parametrze, pozostawiając nienaruszone wszystkie niedopasowane węzły?
na przykład
<code>declare @table table ( [column] xml ) insert @table ([column]) values ('<r><i>1</i><i>2</i><i>3</i></r>') declare @parameter xml set @parameter = '<r><i>1</i><i>2</i></r>' -- this is the problem update @table set [column].modify('delete (//i *where text() matches @parameter*)') </code>
Dokumentacja MSDN wskazuje, że powinna być możliwa (wWprowadzenie do XQuery w SQL Server 2005):
Ta procedura przechowywana może być łatwo zmodyfikowana, aby zaakceptować fragment XML zawierający jeden lub więcej elementów umiejętności, dzięki czemu użytkownik może usunąć wiele węzłów umiejętności za pomocą pojedynczego wywołania procedury składowanej.