gpt4 book ai didi

sql-server - 更新 XML 列中的子字符串 SQL Server 2008

转载 作者:行者123 更新时间:2023-12-02 13:10:21 26 4
gpt4 key购买 nike

我想对 SQL Server 2008 中 XML 列中的所有行执行更新,仅替换某个 xml 节点中的子字符串。我对 XML DML/XQuery 以及所有这些都很陌生,但我只是不知道如何去做。

我要更新的列中的 XML 示例:

<d>
<p n="Richedit01" t="System.String">
<v>
&lt;p&gt; &lt;img border="0" alt="Football4" src="/$-1/football4.jpg" /&gt; &lt;/p&gt;
</v>
</p>
</d>

我想将所有行中出现的所有子字符串“src="/$-1/”替换为“src="/$-1/file/”。

尝试过这个,但显然我无法像这样使用 XPath 替换函数:

UPDATE Translation
SET ContentData.modify('replace value of (d/p[@t=''System.String'']/v)[1] with (d/p[@t=''System.String'']/v[replace(.,''src="/$-1/'',''src="/$-1/file/'')]) ')

最佳答案

我认为最简单的解决方案是转换为另一种可以接受替换的数据类型(例如 nvarchar(MAX))。使用REPLACE函数,然后将其转换回XML

类似

UPDATE Translation SET
ContentData = CAST(REPLACE(CAST(ContentData AS NVARCHAR(MAX)), '/$-1/','/$-1/file/') AS XML)

关于sql-server - 更新 XML 列中的子字符串 SQL Server 2008,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9884943/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com