Мне нужно обновить поле GroupID до 0. Я выяснил, как получить значение, у меня сейчас проблемы с его обновлением.
Любая помощь будет отличной!
<ProblemProfile>
<GroupID>-1</GroupID>
<LayoutID>1</LayoutID>
<MyQueries>false</MyQueries>
</ProblemProfile>
Declare @Result xml
set @Result = convert(xml,(select ProfileXML from profiles where id = 23))
SELECT x.value('.', 'int') ID
FROM @Result.nodes('/ProblemProfile/GroupID') as R(x)
Обновление
Что мне нужно сделать сейчас, это обновить GroupID каждой отдельной строки со значением 'foo'
declare @foo int
set @foo = -1
UPDATE profiles
SET ProfileXML.modify('replace value of (/ProblemProfile/GroupID/text())[1] with "0"')
WHERE ProfileXML.value('(/ProblemProfile/GroupID)[1]', 'int') = @foo
Это обновление только первой строки, соответствующей этому критерию. Как мне обновить каждую строку?
Обновление 2
Это утверждение работает. Оказывается, структура базы данных для первого узла может быть разной. Простой //GroupID...etc обновляется в каждой строке. Это всегда глупые мелочи, которые сбивают нас с толку, ха-ха.