简体   繁体   English

根据属性值删除SQL Server表的XML列中的行

[英]Delete a row in a XML column of a SQL Server table based on attribute value

I have a XML column in a SQL Server table. 我在SQL Server表中有一个XML列。

The data looks like this: 数据如下所示:

<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>

I want to delete a column node which contains PropertyId = 43 . 我想删除一个包含PropertyId = 43的列节点。

How to query that and update the XML column in that table? 如何查询该表并更新该表中的XML列?

Just use the XQuery .modify() method with a delete command: 只需将XQuery .modify()方法与delete命令一起使用:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM