你要看看你的A字段是什么类型。
巴里坤哈萨克网站制作公司哪家好,找创新互联公司!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设等网站项目制作,到程序开发,运营维护。创新互联公司成立与2013年到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联公司。
如果是nvarchar
varchar等可以检索的类型的话
用:
update
表
set
A=Replace(A,'aaa','bbb')
如果是ntext
text
类型的话,就麻烦点,看看一般文章内容的长度有多少?如果少于8000字符
update
表
set
A=Replace(convert(varchar(8000),A),'aaa','bbb')
如果字数比较多的话,就只能用程序从数据库读,然后用正则替换,再进行修改。
我目前就知道这些,看看有高人还有更好的方法没
在告诉大家如何替换数据内容之前,我建议大家先了解一下SQL Server数据库的数据存储类型:在使用iwms系统的过程中,我们会经常遇到数据内容的替换操作。在告诉大家如何替换数据内容之前,我建议大家先了解一下SQLServer数据库的数据存储类型:SQLServer数据类型:以上是数据库的基础知识,是做网站的朋友都应该知道的内容(无论你使用什么cms),所以建议大家都耐心看一下。数据替换一般都发生在字符串数据字段中,除了ntext类型字段以外的其他字符串数据字段都可以使用以下的sql语句进行替换:update [swf_Upload] set [Dir] = replace([Dir],'200901/14','200901/15')update [swf_Content] set [Description] =replace([Description],'200901/14','200901/15')update [swf_Content_01] set [content] = replace(convert(varchar(4000), [content]),'200901/14','200901/15') UPDATE [数据表名] SET [字段名] = REPLACE([字段名],'老字符串','新字符串') 比如,替换iwms文章数据表(iwms_news)中的标题字段(title)的部分内容,我们应该这么写:UPDATE [iwms_news] SET [title] = REPLACE([title],'老字符串','新字符串') 上面的sql语句在iwms后台的sql执行里面可以直接执行,基本上可以搞定所有的替换操作,但是由于ntext数据长度的原因,这一方法对ntext类型字段无效。那我们该用什么方法替换ntext类型字段的内容呢?方法有两种:一是类型转换,将ntext类型转换为varchar类型,然后再用replace。适合于单页内容最大长度4000的文章。update [数据表名] set [字段名] = replace(convert(varchar(4000), [字段名]),'老字符串','新字符串') 比如,替换iwms文章数据表(iwms_news)中的标题字段(content,ntext类型字段)的部分内容,我们应该这么写:update iwms_news set [content] = replace(convert(varchar(4000),[content]),'老字符串','新字符串')二是SQLServer存储过程declare @ptr varbinary(16) declare @artId int declare @Position int,@len int set @len = datalength('老字符串') declare wux_Cursor scroll Cursorforselect textptr([字段名]),[key字段名] from [数据表名] for read only open wux_Cursor fetch next from wux_Cursor into @ptr,@artId while @@fetch_status=0beginselect @Position=patindex('%老字符串%',[字段名]) from [数据表名] where [key字段名]=@artId while @Position0beginset @Position=@Position-1 updatetext [数据表名].[字段名] @ptr @Position @len '新字符串' select @Position=patindex('%老字符串%',[字段名]) from [数据表名] where [key字段名]=@artIdendfetch next from wux_Cursor into @ptr,@artIdendclose wux_cursor deallocate wux_cursor go比如,替换iwms文章数据表(iwms_news)中的标题字段(content,ntext类型字段)的部分内容,我们应该这么写declare @ptr varbinary(16) declare @artId int declare @Position int,@len int set @len = datalength('老字符串')
用replace啊。核心思想是将',1,'替换成',11,12,13,14,15,16,'。考虑到1可能出现在开头或末尾,将原字符串的开头和末尾都加上逗号。这样就可以统一替换了。替换完毕,再去掉开头和结尾的逗号。
create table v (VHCL_RANGE_CODE varchar(100));
insert into v
select '8,1,3,21,22,9,23,61,51,41' union all
select '8,22,9,23,61,51,41,1,3,21' union all
select '1,21,22,23,3,41,42,43,51,52,61,8,9' union all
select '3,4,5,6,1' --加上这条测试一下1在末尾的情况
--前后各加一个逗号后,进行替换
update v set VHCL_RANGE_CODE=replace(','+VHCL_RANGE_CODE+',',',1,',',11,12,13,14,15,16,');
--去除前后的逗号
update v set VHCL_RANGE_CODE=substring(VHCL_RANGE_CODE,2,len(VHCL_RANGE_CODE)-2)替换后的结果:
update 表名 set 字段名 = replace(字段名,‘2019-05’,‘2019-07’) where 条件(ID=765 或者条件范围)