[Err] 42000 - [SQL Server]参数数据类型 text 对于 replace 函数的参数 1 无效。

版权声明:_____________________不积跬步,无以至千里;不积小流,无以成江海。(转载若侵权,联系删除) https://blog.csdn.net/icecoola_/article/details/84024025

原执行sql: 在content列,修改test111111为testStr2222222

update t_table set content= replace(content,'test111111','testStr2222222')

报错信息

修改后执行sql:

update t_table set content= 
replace(convert(varchar(8000),content),'test111111','testStr2222222')

===================================================

Sqlserver替换函数Replace

对text或ntext类型的数据在查询中不能进行字符串操作。
这时用得最多的是把text当作varchar(实际内容长度低于8000字节时)或把ntext当作nvarchar(实际内容长度低于4000字节时)来处理.

update article set [Content]=
Replace(Cast([Content] as nvarchar(4000)),'oldkeyword','newkeyword');

update article set [Content]=
Replace(Cast([Content] as varchar(8000)),'oldkeyword','newkeyword’);

特别提醒:
在使用replace函数时,第一个参数一定不要加引号:

update t_table set src=replace('src','aaaa','bbbb');

他会将src字段全部替换为src字符串,这就是灾难性后果,所以前面提醒要备份。

猜你喜欢

转载自blog.csdn.net/icecoola_/article/details/84024025
今日推荐