SQL Server在TEXT字段中查找并replace

我有一个SQL Server 2005中的数据库,它是从SQL Server 2000启动的,并且仍然使用TEXTtypes字段而不是varchar(max)。

我需要find并replace文本字段中的一串字符,但是我发现的所有例子如何做到这一点似乎不会为我工作。 看起来UPDATETEXT命令要求明确设置两个参数“insert_offset”和“delete_length”,但是我要search的string可以显示在文本中的任何一点,甚至在同一个单元格中的几个点上。 我对这两个参数的理解是,imsearch的string总是在同一位置,所以insert_offset是UPDATETEXT命令将开始replace文本的文本中的空格数。

示例:需要查找: &lt;u&gt; 并将其replace为: <u>

文本字段示例:

 *Everyone in the room was <b>&lt;u&gt;tired&lt;/u&gt;.</b><br>Then they woke <b>&lt;u&gt;up&lt;/u&gt;. 

任何人都可以帮我解决这个问题吗? 谢谢!

我终于弄明白了。 它被埋在评论文章jfrobishow出版。 非常感谢。

这是整个回应,导致我的解决scheme:

报价:原贴由fredclown

如果您使用SQL 2005,则可以使用replace为文本types。 所有你需要做的是以下…

字段=replace(铸(字段为varchar(max)),“string”,“replace”)

易如反掌。

两个大拇指Fredclown! 指挥工作对我来说也是一种魅力。 这是我写我的更新语句到SQL Server 2005数据库中的文本字段中的查找和replace

 UPDATE TableName SET DBTextField = REPLACE(CAST(DBTextField AS varchar(MAX)) ,'SearchText', 'ReplaceText') FROM TableName WHERE CHARINDEX('SearchText',CAST(DBTextField as varchar(MAX)))>0 

注意:这可能会截断你的dbfield的大小,但是如果是一个长文本列,使它变成nvarchar(max) ,你不应该得到任何截断!