zl程序教程

您现在的位置是:首页 >  其它

当前栏目

性校验MSSQL中身份证号码合法性校验实践(mssql 身份证号合法)

mssql 实践 校验 号码 身份证 合法 身份证号 合法性
2023-06-13 09:18:45 时间

性校验MSSQL中身份证号码合法性校验实践

在我们的日常工作中,我们经常会涉及到对用户的身份信息进行校验的情况,其中身份证号码也不例外。它在我们的系统中使用得很普遍,也可能成为必填字段。所以,如何在MSSQL中校验身份证号码是不是有效就变得尤为重要。

以下是在MSSQL中性校验身份证号码合法性的实践:

1.首先要知道身份证号码由18位数字组成,校验码的求解采用的是ISO 7064:1983,MOD 11-2 校验码系统。

2.首先校验身份证号码的长度,这里使用LEN函数实现:

SELECT 
CASE WHEN LEN($IDNO) != 18 THEN "无效:身份证号码长度不正确!"
ELSE "有效" END
FROM identity

3.然后校验身份证号码是否是18位数字:

SELECT
CASE WHEN PATINDEX("%[^0-9]%","$IDNO" != 0) THEN "无效:身份证号码只能是18位数字!"
ELSE "有效" END
FROM identity

4.最后,校验身份证号码的校验码:

DECLARE 
@validBit BIT = 0 ,@a int
,@sum int ,@last int
,@j int ,@y int
,@c_num int
SET @sum = 0 SET @j = 17
SET @y = 2 SET @c_num = 0
WHILE @j 0 BEGIN
SET @a = SubString($IDNo,@j,1) SET @sum = @sum + @a * @y
SET @y += 1 SET @j -= 1
IF @y 8 BEGIN
SET @y = 2 END
END
SET @last = SubString($IDNO,18,1)SET @c_num = 12 - @sum % 11
IF @c_num = 10 BEGIN
IF @last = "X" BEGIN
SET @validbit = 1 END
END ELSE IF CAST(@last as int) = @c_num
BEGIN SET @validbit = 1
END
IF @validbit = 1 BEGIN
SELECT "有效" END
ELSE BEGIN
SELECT "无效:身份证号码校验码不正确!" END
```
以上就是在MSSQL中实现性校验身份证号码合法性的实践,它可以有效避免无效的登记信息,给系统带来很多好处。以上代码只是一部分,更多的条件可以再多加判断,比如生日匹配,省份校验等。根据实际情况,可以灵活添加一些判断,从而达到更加安全的校验结果。

我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题

本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 性校验MSSQL中身份证号码合法性校验实践(mssql 身份证号合法)