我输入的用户名要求是半角的英文,数字,但必须是6位的
IF (PATINDEX('%[^a-zA-Z]%',@prmUserId) > 0) or (LEN(@prmUserId) != 6) BEGIN
我是这样判断的当我在测试的时候,输入的@prmUserId为uuuuu8(6位的)是不报错,输入8888888(7位)或者uuuuuuu是也不报错
是不是LEN那地方出错了啊奇怪了 ,但测试uuuuu(5位)或者88888(5位)就报错
IF (PATINDEX('%[^a-zA-Z]%',@prmUserId) > 0) or (LEN(@prmUserId) != 6) BEGIN
我是这样判断的当我在测试的时候,输入的@prmUserId为uuuuu8(6位的)是不报错,输入8888888(7位)或者uuuuuuu是也不报错
是不是LEN那地方出错了啊奇怪了 ,但测试uuuuu(5位)或者88888(5位)就报错
set @prmUserId ='8888888'
IF (PATINDEX('%[^a-zA-Z]%',@prmUserId) > 0) and (LEN(@prmUserId) = 6)
print 'OK'
else
print 'ERROR'/*
ERROR*/
现在要是不判全角还是半角,直接判断是不是英文或者数字就可以
咋个不好用?不判断全半角去掉后面的or--上面是不符合条件的,符合条件的加not
IF PATINDEX('%[^a-zA-Z0-9]%',@prmUserId)= 0 and DATALENGTH(@prmUserId)= 6
select @wrkErType = 1 ,
@wrkErSts = 999999 ,
@wrkTblID = 'PARAM' ,
@wrkErkey1 = CAST(@prmUserId AS varchar(20)) ,
@wrkErMsg = 'ERROR',
@wrklgRetMode = 1
GOTO ERROR_PROC
END
我就是这么写的啊 ,当执行我这个存储过程的时候,输入,@prmUserId值的时候就出现我上面所说的问题了
@prmUserId char(06)