当前位置:首页 > 用友知识堂 > 正文内容

检测用友软件的数据库是否有特殊字符?

5年前用友知识堂1172

今天用友软件免费下载网站要给大家分享一段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


温馨提示:近期载地址失效频繁,如链接失效请点击此处查阅详情!

相关文章

用友畅捷通T+怎么设置多联打印的图文操作教程

用友畅捷通T+怎么设置多联打印的图文操作教程

【问题现象】今天我们来一起讲一下用友畅捷通T+软件怎么设置多联打印的图文操作教程,使用用友畅捷通T+12.1的软件,怎么设置多联打印?例如说销货单有第一联,第二联,第三联,第四联等各种情况,在打印模板...

使用的用友NC软件怎么清理NC软件的缓存呢?

使用的用友NC软件怎么清理NC软件的缓存呢?

用友NC系统如何清理缓存,用友NC系统使用缓存提升了系统的使用速度。但一旦改变了某些系统设置,缓存就会影响使用,这个时候就需要清理缓存。用友NC如何清理缓存呢,下面由用友小辣妹以WIN7系统做下介绍,...

库存模块结账时提示有盘点单无法结账

问题现象:用友T3财务软件的库存模块月末结账时,提示“因为本月有未审核的盘点单,所以不能结账!”,查询确认本月的盘点单已经结账,什么原因?解决方案:确认是已经录入了下月的盘点单,但未审核导致的,审核此...

用友畅捷通T+报表不能导出EXCEL?

用友畅捷通T+报表不能导出EXCEL?

你是否碰到过在用友畅捷通T+软件中,所有报表(包括T-UFO财务报表和业务模块查询的账表)都不能导出excel表,点击导出时一闪而过,没有任何反应?或者点击时报错?这种奇怪的问题现象呢?经过用友软件...

用友畅捷通T+软件如何按照计量单位设置条形码的图文操作教程

用友畅捷通T+软件如何按照计量单位设置条形码的图文操作教程

问题现象:今天给大家分享一下用友畅捷通T+软件如何按照计量单位设置条形码的图文操作教程,在用友畅捷通T+V12.0软件中如何设置按照计量单位对应条形码?解决方案:1、 增加条形码参照方案。2、 存货档...

用友T3软件怎么修改销售出库单的出库类别?

用友T3软件怎么修改销售出库单的出库类别?

问题描述:在用友T3财务软件的销售管理模块中发现发货单生成的销售出库单自动显示的出库类别是“销售出库”,客户需求是想修改为“其他出库”类别?下面请看用友财务软件免费下载网站给大家带来的用友T3软件怎么...

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。