Xml 在SQL 2005中使用XQuery替换节点';s值多少?
给定以下XML变量,如何在TSQL for MS SQL 2005中用“FOO”替换StateCode节点中的“UNKNOWNXml 在SQL 2005中使用XQuery替换节点';s值多少?,xml,sql-server-2005,tsql,xquery,Xml,Sql Server 2005,Tsql,Xquery,给定以下XML变量,如何在TSQL for MS SQL 2005中用“FOO”替换StateCode节点中的“UNKNOWN declare @xmldata xml set @xmldata = '<Collection> <Plan> <StateCode>UNKNOWN</StateCode> <Type>Tubular</Type>
declare @xmldata xml
set @xmldata =
'<Collection>
<Plan>
<StateCode>UNKNOWN</StateCode>
<Type>Tubular</Type>
</Plan>
</Collection>'
declare@xmldataxml
set@xmldata=
'
不为人知
管状的
'
与我发现的不同,这只是一个XML类型的变量,而不是表记录
我应该简单地将变量值插入表中并使用该问题中介绍的方法,还是可以直接操作XML变量并执行替换?您可以直接操作XML变量并执行替换:
set @xmldata.modify('replace value of (/Collection/Plan/Type/text())[1] with "new value"')
select @xml
(XPath可能不完全正确,因为我没有访问sql server atm的权限)
另外,请注意,如果UNKNOWN实际上是空文本,这将不起作用,这需要更多的工作!) 您提到的edge案例的解决方法是什么(空文本)