【发布时间】:2015-07-03 14:04:00
【问题描述】:
我有一个表,其列类型为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
【问题讨论】:
-
ntext、text和image数据类型将在 SQL Server 的未来版本中删除。避免在新的开发工作中使用这些数据类型,并计划修改当前使用它们的应用程序。请改用nvarchar(max)、varchar(max)和varbinary(max)。 See details here。如果您的列确实包含 XML - 您应该在 SQL Server 2005 和更新版本中真正使用XML数据类型 -
如果你的专栏真的是
ntext(不应该是),它的内容只是一段文本。除了解析它并自行删除节点之外,别无他法。最好的解决方案是将其更改为xml列并使用专门的方法,但如果这不可能,我想下一个最佳选择是在客户端使用专用的 xml 解析函数。 -
不幸的是它是 ntext。它是一个旧数据库,我无法将列更改为其他类型。
标签: sql sql-server