删除XML列中的整个记录

时间:2014-05-19 03:29:16

标签: xml tsql

我有一个名为XMLTable的表,其中包含一个名为XMLcolumn的{​​{1}}。 XMLData包含以下内容:

XMLData

我需要删除特定ProductID的整个记录​​,例如:

<Product>
  <Products>
    <ProductID>9</ProductID>
    <ProductName>Mishi Kobe Niku</ProductName>
    <UnitPrice>97.0000</UnitPrice>
  </Products>
  <Products>
    <ProductID>29</ProductID>
    <ProductName>Thüringer Rostbratwurst</ProductName>
    <UnitPrice>123.7900</UnitPrice>
  </Products>
  <Products>
    <ProductID>38</ProductID>
    <ProductName>Côte de Blaye</ProductName>
    <UnitPrice>263.5000</UnitPrice>
  </Products>
</Product>

我尝试使用以下代码:

<Products>
    <ProductID>9</ProductID>
    <ProductName>Mishi Kobe Niku</ProductName>
    <UnitPrice>97.0000</UnitPrice>
  </Products>

我可以插入新记录并修改数据,但我无法删除整个记录。

1 个答案:

答案 0 :(得分:0)

以下适用于TSQL

UPDATE XMLTable SET XMLData.modify('
  delete /Product/Products[ProductID=9]')

SQL小提琴http://sqlfiddle.com/#!6/45e10/3