Удаление нескольких узлов в одном XQuery для SQL Server
Я имею:
a table with an xml type column (list of IDs) an xml type parameter (also list of IDs)Каков наилучший способ удалить узлы из столбца, которые соответствуют узлам в параметре, оставляя при этом любые несопоставленные узлы нетронутыми?
например
<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>
Документация MSDN указывает, что это должно быть возможно (вВведение в XQuery в SQL Server 2005):
This stored procedure can easily be modified to accept an XML fragment which contains one or more skill elements thereby allowing the user to delete multiple skill nodes with a single invocation of stored procedure.