先去空白再替换。如果那个空白是空格就好办,用函数rtrim,ltrim去空格,如果不是空格
你把sql里的数据粘贴到记事本里,然后再sql的查询分析器里输入
select ascii(' 那个空白字符')得到这个空白的ascii码,接着
update表名 set 字段名=replace(字段名,char(刚才得到ascii码),'')
把空白都去掉之后用你那个语句就可以了。
还有一种本办法,就是把所有的空白的可能都写一次,比如 回车是char(13),换行是char(10)等等你就update表名 set 字段名=replace(字段名,char(10),'') ,
把所有可能都替换了,就那几种是空白,情况也不是很多
---脚本适用于sql 2005 sp3及以上
declare @sql nvarchar(max),@search nvarchar(100),@update nvarchar(100)
set @search='张3'
set @update='李4'
--set @sql='declear @sql nvarchar(4000)'
--select @sql='select @sql=''select '''
set @sql=''
select @sql=@sql+'update '+sysobjectsname+' set '+syscolumnsname+'='''+@update+''' where '+syscolumnsname+'='''+@search+''' ' from sysobjects inner join syscolumns on sysobjectsid=syscolumnsid where sysobjectsxtype='U' and syscolumnsxtype in (35,99,167,175,231,239)
exec sp_executesql @sql
CREATE procedure sp_columnsearch
@search varchar(100),
@update varchar(100)=''
as
begin
---脚本适用于sql 2005 sp3及以上
declare @sql nvarchar(max)
select @sql=@sql+'update '+sysobjectsname+' set '+syscolumnsname+'='''+@update+''' where '+syscolumnsname+'='''+@search+''' ' from sysobjects inner join syscolumns on sysobjectsid=syscolumnsid where sysobjectsxtype='U' and syscolumnsxtype in (35,99,167,175,231,239)
exec sp_executesql @sql
end
经检查,没有问题,除非选错了库运行或者
update aaa set bb='abc' where bb='123'
在你的库里面本来就不能匹配
以上就是关于SQL 怎么批量修改数据表内容全部的内容,包括:SQL 怎么批量修改数据表内容、sql 批量修改数据、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)