根据属性值删除 SQL 服务器 table 的 XML 列中的一行
Delete a row in a XML column of a SQL Server table based on attribute value
我在 SQL 服务器 table 中有一个 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
.
的列节点
如何查询并更新 table 中的 XML 列?
只需将 XQuery .modify()
方法与 delete
命令一起使用:
UPDATE dbo.YourTable
SET Content.modify('delete /ColumnLayout/LayoutColumns/Column[@PropertyId=43]')
我在 SQL 服务器 table 中有一个 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
.
如何查询并更新 table 中的 XML 列?
只需将 XQuery .modify()
方法与 delete
命令一起使用:
UPDATE dbo.YourTable
SET Content.modify('delete /ColumnLayout/LayoutColumns/Column[@PropertyId=43]')