[英]How to delete xml node from ntext column in SQL
我有一个带有ntext
类型列的表。 此列包含xml作为字符串
我想删除一个可以存在多次的元素。
我怎么做?
xml输入示例:
<CATALOG>
<CD>
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia</COMPANY>
<PRICE>10.90</PRICE>
<YEAR>1985</YEAR>
</CD>
<CD>
<TITLE>Hide your heart</TITLE>
<ARTIST>Bonnie Tyler</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>CBS Records</COMPANY>
<PRICE>9.90</PRICE>
<YEAR>1988</YEAR>
</CD>
</CATALOG>
我想使用SQL更新脚本删除节点COUNTRY
如果需要这样做,则必须
XML
类型的SQL变量中 因此,您需要执行以下操作:
DECLARE @XmlVar XML
SELECT @XmlVar = CAST(YourNtextColumn AS XML)
FROM dbo.YourTable
WHERE ID = 123
SET @XmlVar.modify('delete /CATALOG//CD/COUNTRY')
SELECT @XmlVar
现在,最后,您必须将修改后的XML变量写回到表中。 问题是:您不能从XML
转换为NTEXT
......因此,您应该先浪费时间尝试更新此不赞成使用的列类型,然后才应该真正修复表结构(首先使该列成为XML
!)。 ..
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.