将列中的 'the' 更改为 'The'

Changing 'the' to 'The' in a column

我需要在数据库 table 的特定列中将 'the' 的所有出现次数更改为 'The'。我只需要更改单词 'the' 而不是所有出现字母 'the' 的地方(例如在单词 'therefore' 中)。为了说明这一点,我有一堆地址,例如table 中的柳树、大房子、史密斯农场。在此示例中,'the' 的最后两次出现需要更改为 'The'.

我尝试了各种 SQL 脚本,我知道其中一个有效(我已经在少量数据上尝试过)。该脚本如下所示。但是,当我 运行 完整测试数据库上的脚本时,它会永远 运行 并减慢整个服务器的速度。

因此,我试图找到一个脚本,该脚本可以提取任何以小写形式显示 'the' 的地址,然后我可以使用我的工作 SQL 来仅更改这些记录。下面显示了编写此类脚本的尝试,但它似乎对我不起作用。

非常感谢任何帮助,谢谢!

工作代码(需要永远的代码)是:

SET ADDRESSLINE1 = replace(ADDRESSLINE1, ' the ', ' The ')

我试过这段代码只提取带有 'the' 的那些记录,但这根本不会产生任何记录:

SELECT * FROM contact WHERE addressline1 COLLATE 
SQL_Latin1_General_CP1_CI_AS LIKE ' the '

我希望上面显示的第二个脚本会提取任何具有 'the' 而不是 'The' 的地址。

我假设有效的代码是:

UPDATE addresses
    SET ADDRESSLINE1 = replace(ADDRESSLINE1, ' the ', ' The ');

如果是这样,我建议添加一个 WHERE 子句以加快查询速度:

UPDATE addresses
    SET ADDRESSLINE1 = replace(ADDRESSLINE1, ' the ', ' The ')
    WHERE ADDRESSLINE1 LIKE '% the %';

您没有指定数据库,但有些数据库会更新 所有 行 -- 包括记录更改的值 -- 即使值未更改。