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は型 の列であり、関数textでは機能しませんREPLACE。最初のパラメーターを最初にキャストしてみてくださいVARCHAR(MAX)。うまくいくはずです。いいえ:

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 に答える