Я пытаюсь использовать XQuery в SQL Server 2005 для обновления xml, сохраненного в столбце.Вот пример данных, которые мне нужно обновить.
<Length>3</Length>
<Width>5</Width>
<Depth>6</Depth>
<Area xsi:nil="true" />
<Volume xsi:nil="true" />
Мне нужно установить площадь и объем в значения из другой таблицы.Я создаю CTE для обновления.Есть другая логика, которую я пропустил, но я убедился, что CTE содержит правильные данные для обновления:
;with Volume (DocumentID, Volume) As
(
Select DocumentID, Volume from tbl
)
, и я использую следующую инструкцию SQL XQuery, чтобы попытаться обновить таблицу.
UPDATE tbl_Archive
SET XML.modify(' declare namespace x="http://www.redacted.com";
replace value of (/x:Document/x:Volume/text())[1]
with sql:column("Volume.Volume")')
From Volume where volume.documentID = tbl_Archive.DocumentID
На меня влияет 1 строка, но когда я смотрю на XML, он не изменился, и я не могу понять, что нужно исправить, чтобы он работал.Узел не типизирован, если это имеет какое-либо значение.