Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 更新错误:";参数数据类型文本对于REPLACE";的参数1无效;_Sql Server - Fatal编程技术网

Sql server 更新错误:";参数数据类型文本对于REPLACE";的参数1无效;

Sql server 更新错误:";参数数据类型文本对于REPLACE";的参数1无效;,sql-server,Sql Server,为什么我从查询中得到这个错误 Msg 8116,第16级,状态1,第3行 参数数据类型文本对于替换函数的参数1无效 查询: UPDATE tableName SET fieldName = REPLACE (fieldName, '&lt;', '<') WHERE id = 100 更新 对应表名 设置 fieldName=REPLACE(fieldName,,”尝试以下操作: UPDATE tableName SET fieldName = REPL

为什么我从查询中得到这个错误

Msg 8116,第16级,状态1,第3行
参数数据类型文本对于替换函数的参数1无效

查询:

UPDATE 
    tableName
SET
    fieldName = REPLACE (fieldName, '&lt;', '<')
WHERE
    id = 100
更新
对应表名
设置
fieldName=REPLACE(fieldName,,”尝试以下操作:

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

设置fieldName=REPLACE(CONVERT(VARCHAR(MAX),fieldName),“”,这将适用于您

UPDATE yourTableName
SET 
fieldName = REPLACE (CONVERT(VARCHAR(MAX), fieldName), '&lt;', '<')
WHERE id = 100
更新您的表名
设置

fieldName=REPLACE(CONVERT(VARCHAR(MAX),fieldName),“”,如果要对大于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

SQL Server的未来版本中将删除
ntext
text
image
数据类型。避免在新的开发工作中使用这些数据类型,并计划修改当前使用它们的应用程序。使用
nvarchar(max)
varchar(max)
varbinary(max)
相反,..
TEXT
是一种非常糟糕的数据类型-有太多的事情你不能对它做(比如你不能使用所有的字符串函数)-停止使用它-现在!两个答案都解决了问题,但都没有提到原因(看看marc的注释)。此外,错误消息本身也说明了原因。