2012-12-13 46 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”中的值已经存在,是否应该更新?请不要在评论中回答这些问题。相反,你应该更新你的问题,使问题更清晰。 –