gpt4 book ai didi

sql-server-2005 - SQL Server 在 TEXT 字段中查找和替换

转载 作者:行者123 更新时间:2023-12-03 07:38:33 25 4
gpt4 key购买 nike

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

我需要在文本字段中查找并替换一串字符,但我发现的所有如何执行此操作的示例似乎都不适合我。看来 UPDATETEXT 命令要求显式设置两个参数“insert_offset”和“delete_length”,但我正在搜索的字符串可能会显示在文本中的任何点甚至同一单元格中的多个点。我对这两个参数的理解是,我搜索的字符串将始终位于同一位置,因此 insert_offset 是 UPDATETEXT 命令将开始替换文本的文本中的空格数。

示例:需要查找:&lt;u&gt;并将其替换为:<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 发表的文章的评论中。非常感谢。

以下是引导我找到解决方案的完整回复:

quote:Originally posted by fredclown

If you use SQL 2005 you can use replace with a text type. All you have to do is the below ...

field = replace(cast(field as varchar(max)),'string' ,'replacement')

Easy as pie.

Two thumbs up to Fredclown!!! command work like a charm for me as well. This is what I wrote my Update statement to Find and Replace in a Text field in SQL server 2005 database

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)并且你不应该得到任何截断!

关于sql-server-2005 - SQL Server 在 TEXT 字段中查找和替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2641068/

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