检测用友软件的数据库是否有特殊字符?
今天用友软件免费下载网站要给大家分享一段SQL代码,主要用于检测用友软件的数据库是否有特殊字符?例如说TAB键,空格,特殊符号等,可直接用于检测,废话不多说,直接上源SQL代码,大家自己尝试使用吧!
-----检测表中特殊字符,如tab、换行符、回车符--- ------将wa_gzdata替换成要检查的表名即可 ---- ------将有特殊字符的列存放在tmp_aa临时表中 go if exists(select * from sysobjects where name='tmp_aa' and xtype='U') drop table tmp_aa go CREATE TABLE tmp_aa( a varchar(20), b varchar(20)) go declare @tablename varchar (50) set @tablename='wa_gzdata' declare my_cur cursor for select name from syscolumns where id = object_id(@tablename) and xtype in (167,175,239,99)--nvarchar,varchar,char,nchar型 open my_cur declare @col_ls nvarchar(50) fetch next from my_cur into @col_ls while @@fetch_status=0 BEGIN declare @sql1 varchar(1000),@ls_where varchar(100),@ls_set varchar(100) declare @sql2 varchar(1000) declare @sql3 varchar(1000) --检测tab键 select @sql1 = 'select '+@col_ls+' from '+@tablename +' where CHARINDEX(CHAR(9),'+@col_ls+')>0' set @ls_where=' where CHARINDEX(CHAR(9),'+@col_ls+')>0' select @sql1 = 'select '+@col_ls+' from '+@tablename +@ls_where EXEC(@sql1) --------替换tab if @@ROWCOUNT>0 begin insert into tmp_aa (a,b) values (@col_ls,'tab键') set @sql1='update'+@tablename +' set ' +@col_ls+'=' set @ls_set='REPLACE('+@col_ls+',char(9),'+''''+''''+')' select @sql2= 'update '+ @tablename+ ' set ' +@col_ls+'='+@ls_set+@ls_where --print @sql2 exec(@sql2) end set @sql1='' --char(10)检测换行 select @sql1 = 'select '+@col_ls+' from '+@tablename +' where CHARINDEX(CHAR(10),'+@col_ls+')>0' set @ls_where=' where CHARINDEX(CHAR(10),'+@col_ls+')>0' select @sql1 = 'select '+@col_ls+' from '+@tablename +@ls_where --print @sql1 EXEC(@sql1) if @@ROWCOUNT>0 begin insert into tmp_aa (a,b) values (@col_ls,'换行符') set @sql1='update'+@tablename +' set ' +@col_ls+'=' set @ls_set='REPLACE('+@col_ls+',char(10),'+''''+''''+')' select @sql2= 'update '+ @tablename+ ' set ' +@col_ls+'='+@ls_set+@ls_where -- print @sql2 exec(@sql2) end set @sql1='' --- --char(13)检测回车键 select @sql1 = 'select '+@col_ls+' from '+@tablename +' where CHARINDEX(CHAR(10),'+@col_ls+')>0' set @ls_where=' where CHARINDEX(CHAR(10),'+@col_ls+')>0' select @sql1 = 'select '+@col_ls+' from '+@tablename +@ls_where --print @sql1 EXEC(@sql1) if @@ROWCOUNT>0 begin insert into tmp_aa (a,b) values (@col_ls,'回车键') set @sql1='update'+@tablename +' set ' +@col_ls+'=' set @ls_set='REPLACE('+@col_ls+',char(13),'+''''+''''+')' select @sql2= 'update '+ @tablename+ ' set ' +@col_ls+'='+@ls_set+@ls_where --print @sql2 exec(@sql2) end fetch next from my_cur into @col_ls END close my_cur DEALLOCATE my_cur
相关文章
- 速达里的财务管理 现金流混乱、发票错乱?速达财务管理回款提速2倍,智能识别错误率下降90%
- erp标准财务 ERP标准财务:成本控制策略与税务合规处理全攻略——行业标杆实践与企业必备操作手册
- 财务软件多少钱最简单:常见问题与解决方法全解析
- 电商会计店铺对账怎么操作:提升效率的智能方案与资深财务都在用的流程
- 会计结转指的是什么?4个关键步骤与10个常用快捷方法助你规避财务风险
- 一个财务软件做两套账可以吗安全吗 财务软件做两套账安全吗?企业双账操作的合规风险解析
- 在财务软件上做账的顺序是什么呢 在财务软件上做账的顺序及步骤详解,新手教程指南
- 月末结转处理可以多次结账 月末结转处理支持多次结账与数据核对及报表生成
- 第三方财务软件排名榜最新:电商企业与财务人员必备的效率神器
- 福建代账会计财务软件专业版推荐与效率提升秘诀