1

给定以下 XML 变量,如何在 MS SQL 2005 的 TSQL中将 StateCode节点中的“ UNKNOWN ”替换为“ FOO ”?

declare @xmldata xml

set @xmldata = 

    '<Collection>
        <Plan>
            <StateCode>UNKNOWN</StateCode>
            <Type>Tubular</Type> 
        </Plan>
    </Collection>'

与我发现的类似问题不同,这只是一个 XML 类型变量,而不是表记录。

我应该简单地将变量值插入表中并使用该问题中提出的方法,还是可以直接操作 XML 变量并执行替换?

4

1 回答 1

2

您可以直接操作 XML 变量并执行替换:

set @xmldata.modify('replace value of (/Collection/Plan/Type/text())[1] with "new value"')

select @xml

(XPath 可能不完全正确,因为我无权访问 sql server atm)

另外,请注意,如果 UNKNOWN 实际上是空文本,这将不起作用,这需要更多的工作!)

于 2009-06-13T05:33:31.640 回答