我有一个包含两列的表, ID
和 Value
. 我想在第二列中更改某些字符串的一部分 .
表格示例:
ID Value
---------------------------------
1 c:\temp\123\abc\111
2 c:\temp\123\abc\222
3 c:\temp\123\abc\333
4 c:\temp\123\abc\444
现在不需要 Value
字符串中的 123\
. 我试过 UPDATE
和 REPLACE
:
UPDATE dbo.xxx
SET Value = REPLACE(Value, '%123%', '')
WHERE ID <= 4
当我执行脚本时,SQL Server不会报告错误,但它也不会更新任何内容 . 这是为什么?
8 回答
您不需要
REPLACE
中的通配符 - 它只是找到您为第二个参数输入的字符串,因此以下内容应该有效:(我还在替换中添加了
\
,因为我认为你也不需要它)尝试删除
%
字符,如下所示要使查询在不需要更新每一行的大表中运行 faster ,您还可以选择仅更新将被修改的行:
查询:
你有一个表,你有日期代码,这是七个字符之类的东西
现在你想要全部替换
同
您必须运行的SQL查询是
对于任何想要替换你的脚本的人 .
update dbo.[TABLE_NAME] set COLUMN_NAME= replace(COLUMN_NAME, 'old_value', 'new_value') where COLUMN_NAME like %CONDITION%
您应该使用以下更新查询
以上任一查询都应该有效 .