日期:2014-05-19  浏览次数:20577 次

怎样判断记录中是否还有特殊字符
有两个问题:
1.请问怎样判断记录中是否还有特殊字符。
我不知道特殊字符是怎样排序的,有没有个范围,如果有的话,那么类是于
PATINDEX( '%[A-Z]% ',[user_name])=0,就比较简单了,下面的那个不对:
PATINDEX( '%~,!,@,#,$,%,^,&,*,(,),_,+,-,=,`,[,],\,{,},|,;, <,> ,/,?,.% ',[user_name])=0
如果拆开分别判断,倒是可以,不过那样太麻烦了,应该有好的办法吧?
请各位高手指教。

2.在SQLSERVER中这样设置才能定时执行某一存储过程?

------解决方案--------------------
1 再增加union all测试以下语句

select *,PATINDEX( '%[~!@#$%]% ',[user_name]) from (
select 'a ' as [user_name] union all
select 'a~1 ' union all
select 'a!1 ' union all
select 'a@1 ' union all
select 'a#1 ' union all
select 'a$1 ' union all
select 'a%1 ' union all
select 'a]1 ' union all
select 'a[1 ' union all
select 'b '
) as t where
PATINDEX( '%[~!@#$%^&*()_+-=`[\{}|; <> /?.]% ',[user_name])=0
and PATINDEX( '%]% ',[user_name])=0

2 看看任务或者job的帮助

------解决方案--------------------
1.
PATINDEX( '%[~!@#$^&*()_+-=`[\{}|; <> /?.,% ',[user_name])=0 AND
PATINDEX( '%[%]% ',[user_name])=0 AND
PATINDEX( '%]% ',[user_name])=0
2.
创建作业,把存储过程放到作业中,设置作业执行的时间.
------解决方案--------------------
问题1:写一个函数,循环判断username中的每一个字符是否是非法字符。
用charindex(字符, '%~,!,@,#,$,%,^,&,*,(,),_,+,-,=,`,[,],\,{,},|,;, <,> ,/,?,.% ')> 0

问题2:用数据库作业,定时执行。
------解决方案--------------------
抱歉,更正一下:
1.
PATINDEX( '%[~!@#$^&*()_+-=`[\{}|; <> /?.,]% ',[user_name])=0 AND
PATINDEX( '%[%]% ',[user_name])=0 AND
PATINDEX( '%]% ',[user_name])=0