Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 在SQL 2005中使用XQuery替换节点';s值多少?_Xml_Sql Server 2005_Tsql_Xquery - Fatal编程技术网

Xml 在SQL 2005中使用XQuery替换节点';s值多少?

Xml 在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>

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

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案例的解决方法是什么(空文本)