2012-12-13 42 views
1

我有如下表結構如何更新XML數據

ID INT

XMLDATA XML

我想在XML列(XMLDATA)與以下條件基於新的價值更新的數據。以下是xml列中的示例數據。

<customer> 
    <name display="CName">abc</name> 
    <customerId display="CID">123</customerId> 
</customer> 

在我的表中的某些行可能沒有客戶ID XML標記,我想這些身份和需要更新客戶ID

XML標記

請建議,我怎麼能做到這一點。

感謝,

回答

0

使用modify() Method (xml Data Type)insert (XML DML)

update YourTable 
set xmlData.modify('insert <customerId display="CID">123</customerId> 
        into customer[1]') 
where xmlData.exist('/customer/customerId') = 0 

使用exist() Method (xml Data Type)在where子句中,所以你只更新不具有customerId節點的行。

+0

謝謝我有其他幾個案例。請針對以下情況提出建議 – user1814841

+0

如何爲「CID」提供動態日期如何檢查display =「CID」屬性是否存在,如果不存在,我必須添加該屬性以及 – user1814841

+0

@ user1814841對不起,我不完全明白你想要什麼。你的意思是說,當你說'CID'時,你需要一個'display'的動態值? 「CID存在」是什麼意思?如果'display'具有另一個值而不是動態提供的值,會發生什麼?如果「display」屬性缺失,是否應該添加「display」?如果「display」中的值已經存在,是否應該更新?請不要在評論中回答這些問題。相反,你應該更新你的問題,使問題更清晰。 –