所以我正在尝试使用以下代码:
UPDATE TableName
SET FieldName = REPLACE(FieldName, 'SearchFor', 'ReplaceWith');
它非常适合我需要做的事情,除了我需要搜索的内容是“有效的驾驶执照”。撇号似乎与代码不一致。我试过这样做:
'valid driver''s license'
......但这似乎也不起作用。我收到以下错误:
Argument data type text is invalid for argument 1 of replace function.
如果有人以前处理过此事,我会很乐意帮忙!这样可以节省我很多时间,而不是手动更新每条记录。 -__-
埃利
答案 0 :(得分:7)
错误告诉您问题究竟是什么。 FieldName
是text
类型的列,不支持REPLACE
函数。首先尝试将第一个参数转换为VARCHAR(MAX)
,它应该可以正常工作。 IE:
UPDATE TableName
SET FieldName = REPLACE(CAST(FieldName AS VARCHAR(MAX)), 'SearchFor', 'ReplaceWith');
答案 1 :(得分:1)
这很有趣。我刚刚在几分钟前碰到了这件事。事实证明我必须改变这个:
更新TableName SET FieldName = REPLACE(FieldName,'SearchFor','ReplaceWith');
到此: 更新TableName SET FieldName = REPLACE(cast(FieldName as varchar(5000)),'SearchFor','ReplaceWith');
答案 2 :(得分:-1)
您必须使用斜杠转义单引号。
UPDATE TableName
SET FieldName = REPLACE(FieldName, 'Isn\'t', 'Is not');