我需要更换所有事件" google.com"在 SQL db表Column1中使用" newurl"来满足这些要求。它可以是一个完整的单元格值,它的一部分(varchar()的子串),甚至可以在单元格中多次使用。
基于SO answer search-and-replace-part-of-string-in-database
这就是我需要的:
UPDATE
MyTable
SET
Column1 = Replace(Column, 'google.com', 'newurl')
WHERE
xxx
然而,在该答案中提到了
You will want to be extremely careful when doing this! I highly recommend doing a backup first.
执行此查询有哪些陷阱?通过单击“全部替换”按钮,它看起来与任何texteditor所做的相同。我不认为在我的情况下即使使用保留副本也可以检查错误,因为我想提前知道可能的错误。
有什么理由要小心这个查询吗?
同样,我希望它取代google.com
所有出现的&new;新的'在SQL db中的MyTable表的Column1中。
谢谢。
答案 0 :(得分:1)
只需创建一个测试表,作为原始源表的副本,在那里完成更新并检查结果。
您希望将此作为良好的SQL编程实践,以确保您不会弄乱不应更新的列。
您可以做的另一件事是使用SELECT语句获取符合条件的事先计数。
运行你的更新声明,如果它在计数上匹配为1-1,你应该很高兴。
我唯一可以想到的是,在这方面会发生负面影响,因为其他列会更新。您的WHERE子句并不是我们特定的,所以没有办法验证您正在做的事情会按照您的预期进行。
答案 1 :(得分:1)
我认为发布答案的人只是谨慎 - 这将修改MyTable中每一行的Column1中的值,因此请确保在执行时表示它。另一种谨慎的方法是将它包装在一个事务中,这样如果你不喜欢结果就可以回滚它。