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文本的文本中的空格数。
示例:需要查找: <u>
并将其replace为: <u>
文本字段示例:
*Everyone in the room was <b><u>tired</u>.</b><br>Then they woke <b><u>up</u>.
任何人都可以帮我解决这个问题吗? 谢谢!
我终于弄明白了。 它被埋在评论文章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) ,你不应该得到任何截断!