UPDATE错误:“参数数据类型文本对REPLACE的参数1无效”

时间:2015-01-16 11:55:30

标签: sql-server

为什么我的查询出现此错误?

  

Msg 8116,Level 16,State 1,Line 3
  参数数据类型文本对于替换函数的参数1无效。

查询:

UPDATE 
    tableName
SET
    fieldName = REPLACE (fieldName, '&lt;', '<')
WHERE
    id = 100

3 个答案:

答案 0 :(得分:28)

试试这个:

UPDATE tableName
SET fieldName = REPLACE (CONVERT(VARCHAR(MAX), fieldName), '&lt;', '<')
WHERE id = 100

答案 1 :(得分:2)

这对你有用

UPDATE yourTableName
SET 
fieldName = REPLACE (CONVERT(VARCHAR(MAX), fieldName), '&lt;', '<')
WHERE id = 100

答案 2 :(得分:0)

如果您想对大于8000字符的文本进行相同操作,可以使用以下代码:

DECLARE @v VARCHAR(10) -- TEXT TO ADD
DECLARE @Vs VARHCAR(10) -- TEXT TO FIND
SET @v = 'String text to add'
SET @Vs = 'String text to find'


       UPDATE 
                yourTableName
        SET 
                textField = SUBSTRING(textField,1,DATALENGTH (textField)-LEN(@Vs)) + REPLACE( CAST(SUBSTRING(textField,DATALENGTH(textField)-LEN(@Vs)-1,DATALENGTH (textField)) AS VARCHAR(4)),@Vs,@v )
            WHERE 
                yourTableName.id = @iRifID -- Update for Table ID