Sql server 更新错误:";参数数据类型文本对于REPLACE";的参数1无效;
为什么我从查询中得到这个错误 Msg 8116,第16级,状态1,第3行Sql server 更新错误:";参数数据类型文本对于REPLACE";的参数1无效;,sql-server,Sql Server,为什么我从查询中得到这个错误 Msg 8116,第16级,状态1,第3行 参数数据类型文本对于替换函数的参数1无效 查询: UPDATE tableName SET fieldName = REPLACE (fieldName, '<', '<') WHERE id = 100 更新 对应表名 设置 fieldName=REPLACE(fieldName,,”尝试以下操作: UPDATE tableName SET fieldName = REPL
参数数据类型文本对于替换函数的参数1无效 查询:
UPDATE
tableName
SET
fieldName = REPLACE (fieldName, '<', '<')
WHERE
id = 100
更新
对应表名
设置
fieldName=REPLACE(fieldName,,”尝试以下操作:
UPDATE tableName
SET fieldName = REPLACE (CONVERT(VARCHAR(MAX), fieldName), '<', '<')
WHERE id = 100
更新表名
设置fieldName=REPLACE(CONVERT(VARCHAR(MAX),fieldName),“”,这将适用于您
UPDATE yourTableName
SET
fieldName = REPLACE (CONVERT(VARCHAR(MAX), fieldName), '<', '<')
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的注释)。此外,错误消息本身也说明了原因。