我遇到了在SQL Server中修改XML的問題,這對我來說似乎沒有意義。我想更新一個空節點的值,但它似乎沒有工作。例如,假設我有這樣的XML樹:在SQL XML中替換空節點的值
<root>
<node />
</root>
,我想用「富」更新的<node />
的價值,所以我有XML查詢:
UPDATE [Table]
SET [XmlColumn].modify('
replace value of (root/node/text())[1]
with "foo"')
出於某種原因,這並未沒有工作。它將節點視爲不存在。如果節點已經有一個值(例如,<node>bar</node>
),那麼它工作得很好,但是當節點爲空時,它會默默地忽略該命令,甚至不會拋出任何錯誤。有沒有辦法讓SQL Server在空節點上確認replace value of
?
編輯:
我想這個查詢的最終結果是這樣的:
<root>
<node>
foo
</node>
</root>
可能重複的,沒有文字在T-SQL](http://stackoverflow.com/questions/6254630/update-xml-field-with-no-text-in-t-sql) –
真棒,Mikael。這個解決方案似乎比安德烈指出的方式更清潔。非常感謝! – Chris