如何使用另一个相关表中 xml 标记的值更新 xml 标记的值?
像这样的东西:
UPDATE v2
SET
[xml].modify ('replace value of (//TAG1/text())[1]
with "CAST(v1.[xml].query(''//TAG2'') AS NVARCHAR(MAX))"')
FROM
table2 v2,
table1 v1
WHERE
v2.id = v1.id
我很晚才回答这个问题,但如果您希望将来“批量更新”XML 列,并且您使用的是 SQL 2005+,则可以使用 CTE 来完成此操作:
WITH NewXmlData AS
(
SELECT v2.Id AS id
, CAST(v1.[xml].query('//TAG2') AS NVARCHAR(MAX)) AS NewValue
FROM table2 AS v2
INNER JOIN table1 AS v1 ON v2.id = v1.id
)
UPDATE v2
SET [xml].modify ('replace value of (//TAG1/text())[1]
with sql:column("NewXmlData.NewValue")')
FROM table2 AS v2
INNER JOIN NewXmlData AS nxd ON v2.id = nxd.id
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)