2009-06-13 53 views
1

考慮下面的XML變量,我怎麼能代替 「UNKNOWN」 在TSQL的StateCode節點與 「FOO」 爲MS SQL 2005?在SQL 2005中使用XQuery來替換節點的值?

declare @xmldata xml 

set @xmldata = 

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

不像similar question,我發現,這是一個簡單的XML類型的變量,而不是一個表的記錄。

我是否應該簡單地將變量值插入表中並使用該問題中提出的方法,或者可以直接操作XML變量並執行替換?

回答

2

您可以直接操作XML變量並進行更換:

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

select @xml 

也(因爲我沒有訪問SQL Server的自動櫃員機中的XPath可能不完全正確)注意,如果UNKNOWN實際上是空的文本,這將不起作用,這需要更多的工作!)

+0

非常感謝! – 2009-06-13 14:39:39