You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server中更新带命名空间的XML字段内邮箱地址失败如何解决

问题原因

  • XPath路径错误:你编写的路径将Value作为Key的子节点,但实际二者是同级节点,均为KeyValueOfstringanyType的直接子元素
  • 未声明默认命名空间:你的XML根节点定义了默认命名空间,必须在XML DML语句中显式声明才能匹配到对应节点

正确修改脚本

推荐使用带筛选条件的写法,确保只修改键为Email对应的值,容错性更高:

WITH XMLNAMESPACES (DEFAULT 'http://schemas.microsoft.com/2003/10/Serialization/Arrays')
UPDATE t 
SET XMLColumn.modify('replace value of (/ArrayOfKeyValueOfstringanyType/KeyValueOfstringanyType[Key="Email"]/Value/text())[1] with "dwight@staples.com"')
-- 建议补充WHERE条件限定需要修改的行,避免全表更新

附加说明

你之前的脚本提示行受影响但XML未修改,是因为XPath没有匹配到任何节点,SQL Server的XML.modify方法在匹配不到节点时不会抛出错误,也不会修改XML内容,但UPDATE语句本身仍会返回受影响行数。

内容的提问来源于stack exchange,提问作者Ray

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 22:48:03