我有一个有两列的表,ID并且Value. 我想更改第二列中某些字符串的一部分。
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
现在不需要字符串中123\的。Value我试过UPDATE了REPLACE:
123\
UPDATE
REPLACE
UPDATE dbo.xxx SET Value = REPLACE(Value, '%123%', '') WHERE ID <= 4
当我执行脚本时,SQL Server 不会报告错误,但它也不会更新任何内容。这是为什么?
您不需要通配符REPLACE- 它只会找到您为第二个参数输入的字符串,因此以下内容应该有效:
UPDATE dbo.xxx SET Value = REPLACE(Value, '123', '') WHERE ID <=4
如果要替换的列是 typetext或者ntext您需要将其转换为 nvarchar
text
ntext
UPDATE dbo.xxx SET Value = REPLACE(CAST(Value as nVarchar(4000)), '123', '') WHERE ID <=4