我正在尝试在 SQL Server 2005 中使用 XQuery 来更新保存在列中的 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
)
我正在使用以下 XQuery SQL 语句来尝试更新表。
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 时它并没有改变,我不知道需要修复什么才能使其工作。该节点是无类型的,如果这有什么不同的话。