我有一个有两列的表,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 dbo.xxx
SET Value = REPLACE(Value, '%123%', '')
WHERE ID <= 4
当我执行脚本时,SQL Server不报告错误,但它也不更新任何东西。为什么呢?
你不需要在REPLACE中使用通配符——它只会找到你为第二个参数输入的字符串,所以下面应该可以工作:
UPDATE dbo.xxx
SET Value = REPLACE(Value, '123', '')
WHERE ID <=4
如果要替换的列类型是text或ntext,则需要将其强制转换为nvarchar
UPDATE dbo.xxx
SET Value = REPLACE(CAST(Value as nVarchar(4000)), '123', '')
WHERE ID <=4
你不需要在REPLACE中使用通配符——它只会找到你为第二个参数输入的字符串,所以下面应该可以工作:
UPDATE dbo.xxx
SET Value = REPLACE(Value, '123', '')
WHERE ID <=4
如果要替换的列类型是text或ntext,则需要将其强制转换为nvarchar
UPDATE dbo.xxx
SET Value = REPLACE(CAST(Value as nVarchar(4000)), '123', '')
WHERE ID <=4