检查节点是否存在于SQL Server xml列中

时间:2017-10-29 15:37:42

标签: sql-server xml

我的SQL Server表中有一个包含此XML值的列:

<ValidTestResult version="1.0" encoding="UTF-8">
  <item CarType="پراید" SystemType="2" model="1382">
    <count>7777</count>
  </item>
  <item CarType="1" SystemType="2" model="1382">
    <count>100</count>
  </item>
  <item CarType="1" SystemType="2" model="1380">
    <count>100</count>
  </item>
</ValidTestResult>

我想检查一个节点是否存在,更新count的值。我使用此代码执行此操作:

UPDATE InquiryStatus
SET TotalCarburetorResult.modify(N'replace value of 
(/ValidTestResult/item[@model=("1382") and @CarType=("پراید")]/count/text())[1] with ("7777")') where id=27
GO

UPDATE InquiryStatus
SET TotalCarburetorResult.modify(N'insert <item CarType="پراید" SystemType="2" model="1382"><count>100</count></item> into (/Result)[1]')

正如您所看到的,我的代码会插入并更新值,但我还需要其他内容: 我想检查节点是否存在,然后更新值计数,如果不存在,则应插入新节点。如何检查节点是否存在?

例如,具有此属性的节点:

<item CarType="1" SystemType="2" model="1382">

1 个答案:

答案 0 :(得分:0)

lastState