【问题标题】:Delete a row in a XML column of a SQL Server table based on attribute value根据属性值删除 SQL Server 表的 XML 列中的一行
【发布时间】:2018-04-05 04:20:42
【问题描述】:

我在 SQL Server 表中有一个 XML 列。

数据如下:

<ColumnLayout>
    <LayoutColumns>
        <Column PropertyId="43" ColumnWidth="0" IsHidden="false" IsDefaultColumn="false" />
        <Column PropertyId="12" ColumnWidth="0" IsHidden="false" IsDefaultColumn="false" />
        <Column PropertyId="41" ColumnWidth="0" IsHidden="false" IsDefaultColumn="false" />
        <Column PropertyId="16" ColumnWidth="0" IsHidden="false" IsDefaultColumn="false" />
        <Column PropertyId="23" ColumnWidth="0" IsHidden="false" IsDefaultColumn="false" />
        <Column PropertyId="94" ColumnWidth="0" IsHidden="false" IsDefaultColumn="false" />
        <Column PropertyId="98" ColumnWidth="0" IsHidden="false" IsDefaultColumn="false" />
    </LayoutColumns>
</ColumnLayout>

我想删除一个包含PropertyId = 43的列节点。

如何查询并更新该表中的 XML 列?

【问题讨论】:

    标签: sql-server sql-update xml-column


    【解决方案1】:

    只需使用带有delete 命令的XQuery .modify() 方法:

    UPDATE dbo.YourTable
    SET Content.modify('delete /ColumnLayout/LayoutColumns/Column[@PropertyId=43]')  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-28
      • 2014-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多