0

可能重复:
替换 sql server 中的单引号

所以我正在尝试使用以下代码:

UPDATE TableName
SET FieldName = REPLACE(FieldName, 'SearchFor', 'ReplaceWith');

它非常适合我需要做的事情,除了我需要搜索的是“有效的驾驶执照”这一事实。该撇号似乎与代码不一致。我试过这样做:

'valid driver''s license'

...但这似乎也不起作用。我收到以下错误:

Argument data type text is invalid for argument 1 of replace function.

如果有人以前处理过这个问题,我希望得到一些帮助!这将节省我很多时间,而不是手动更新每条记录。-__-

艾莉

4

3 回答 3

7

该错误准确地告诉您问题所在。FieldName是 type 的一列text,它不适用于REPLACE函数。尝试将第一个参数作为VARCHAR(MAX)第一个,它应该可以工作。IE:

UPDATE TableName
SET FieldName = REPLACE(CAST(FieldName AS VARCHAR(MAX)), 'SearchFor', 'ReplaceWith');
于 2012-12-19T17:58:23.920 回答
1

那很好笑。几分钟前我刚刚遇到了这个确切的事情。事实证明我不得不改变这个:

UPDATE TableName SET FieldName = REPLACE(FieldName, 'SearchFor', 'ReplaceWith');

为此: UPDATE TableName SET FieldName = REPLACE(cast(FieldName as varchar(5000)), 'SearchFor', 'ReplaceWith');

于 2012-12-19T17:57:58.947 回答
-1

您必须用斜杠转义单引号。

UPDATE TableName
SET FieldName = REPLACE(FieldName, 'Isn\'t', 'Is not');
于 2012-12-19T17:58:02.337 回答