明凯博客

关注网站技术,一个特立独行的程序员

SQL Server数据库中批量替换数据的方法

SQL Server数据库操作中,我们可能会根据某写需要去批量替换数据,那么如何批量修改替换数据呢?

方法一:

这种是最常用的,因为很多大段的内容都使用text ntext等数据类型,而我们通常也是替换里面的内容,varchar和nvarchar类型是支持replace,所以如果你的text不超过8000可以先转换成前面两种类型再使用replace,替换text ntext 数据类型字段的语句。

1
2
UPDATE 表名 SET 字段名=REPLACE(CAST(与前面一样的字段名 AS VARCHAR(8000)) ,
'原本内容','想要替换成什么')

方法二:

替换其他数据类型字段的语句,实际应用中不常见。

1
UPDATE [表名] SET 字段名 = REPLACE(与前面一样的字段名,'原本内容','想要替换成什么')

需要补充的几点:

1、如何批量替换ntext字段里面的数据,问题描述:我想把数据库中News表中的字段content中的一些字符批量替换。

我的content字段是ntext类型的。我想替换的字段是content字段,我想把里面的www.aimks.com替换成https://www.limingkai.com,替换方法是:

1
2
3
4
UPDATE News  
SET content = REPLACE(CAST(content AS VARCHAR(8000)),  
'www.aimks.com',  
'https://www.limingkai.com')

2、如何批量替换varchar和nvarchar类型

varchar和nvarchar类型是支持replace,所以如果你的text/ntext不超过8000/4000可以先转换成前面两种类型再使用replace。

1
2
3
4
5
6
UPDATE 表名
SET text类型字段名=REPLACE(CONVERT(VARCHAR(8000),text类型字段名),'要替换的字符',
'替换成的值')
UPDATE 表名
SET ntext类型字段名=REPLACE(CONVERT(nvarchar(4000),ntext类型字段名),'要替换的字符',
'替换成的值')

不过上面的方法,对于text或ntext字段超过8000的时候就不能用了,一般可以用php程序来实现,先读取内容替换后,保存到数据库中。

, ,

相关文章

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注