概况:新出的广告词法,为避查处,需要修改官网等的相关文章数据。
解决方法:
步骤一、找出包含广告词所在字段的所有数据,使用以下SQL 语句,
empty
--推荐
declare @str varchar(100)
declare @fh varchar(10)
--@str=''设置要模糊搜索的字符串
set @str='最'
declare @s varchar(8000)
declare tb cursor local for
select s='if exists(select 1 from ['+b.name+ '] where ['+a.name+'] like ''%'+@str+'%'') print ''select '+a.name+' from ' +b.name+ ' where '+a.name+' like ''''%'+@str+'%''''; '''
--select s='if exists(select 1 from ['+b.name+'] where ['+a.name+'] like ''%'+@str+'%'') print ''所在的表及字段: ['+b.name+'].['+a.name+']'''
--select s='if exists(select 1 from ['+b.name+ '] where ['+a.name+'] like ''%'+@str+'%'') print ''select * from ' +b.name+ ' where '+a.name+' like ''''%'+@str+'%''''; '''
from syscolumns a join sysobjects b on a.id=b.id
where b.xtype='U' and a.status>=0 and a.xusertype in(175,239,231,167)
open tb
fetch next from tb into @s
while @@fetch_status=0
begin
exec(@s)
fetch next from tb into @s
end
close tb
deallocate tb
效果图:
然后执行SQL查询
步骤二、将找出来的数据复制到 word文档中,使用Ctrl+F 查找 突出显示查找内容(此时很容易就能找到广告词所在的位置了),阅读文档,
对广告词做出选择(保留,删除,或替换其他文字)在旁填写决断,如下图:
步骤三、大家多知道这文章基本 又没规则,也不能用特定词一次性全部替换了,如果其中有部分是规则相同的,则可以使用替换语句进行修改,使用以下语句
empty
--由模糊查询生成替换语句
declare @str1 varchar(100)
declare @str2 varchar(100)
set @str1='XXXX'
set @str2='CCCCC' --填替换后的内容
declare @s1 varchar(8000)
declare tb cursor local for
select s='if exists(select 1 from ['+b.name+ '] where ['+a.name+'] like ''%'+@str1+'%'') print ''update ' +b.name+ ' set '+a.name+' =REPLACE('+a.name+','+@str1+','+@str2+') where '+a.name+' like ''''%'+@str1+'%'''';'''
from syscolumns a join sysobjects b on a.id=b.id
where b.xtype='U' and a.status>=0 and a.xusertype in(175,239,231,167)
open tb
fetch next from tb into @s1
while @@fetch_status=0
begin
exec(@s1)
fetch next from tb into @s1
end
close tb
deallocate tb
此致基本结束,如怕数据出错,请先进行数据库备份后在进行操作,如果有更好的方法求告知qq:402646940,备注来意,谢谢!(急着去吃饭跑路了)