SQLServer2000身份证校验函数实现
109 浏览量
更新于2024-08-31
收藏 59KB PDF 举报
该资源提供了一个在SQL Server 2000中用于验证身份证号码合法性的自定义函数示例代码。这个函数名为`fun_utils_idnumberoprater`,它可以检查输入的15位或18位身份证号码是否有效,并且能够将15位身份证号码转换为18位。身份证号码由17位数字和1位校验码组成,包括6位地址码、8位出生日期码、3位顺序码和1位校验码。校验码的计算方法是将前17位数字分别乘以特定系数,然后求和,再对11取余数,根据余数确定校验码。
以下是详细的身份证号码校验及转换过程:
1. **身份证号码结构**:
- 地址码:表示持证人的户籍所在地,由6位数字组成,前两位代表省或直辖市,中间两位代表市,最后两位代表县或区。
- 出生日期码:按照YYYYMMDD的格式,用8位数字表示持证人的出生日期。
- 顺序码:在同地址码和出生日期码相同的条件下,为同一地区内的个人进行排序,奇数分配给男性,偶数分配给女性,共3位。
- 校验码:根据前17位数字通过特定算法计算得出,用于检验身份证号码的正确性。
2. **身份证校验码算法**:
- 系数乘法:将身份证号码的前17位数字分别乘以预设的系数(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2)。
- 求和:将上述乘积求和。
- 取余:将求和结果除以11,得到余数。
- 对应校验码:余数对应11位校验码数组(1, 0, X, 9, 8, 7, 6, 5, 4, 3, 2)中的相应位置,得到最终的校验码。
3. **函数实现**:
- `fun_utils_idnumberoprater`函数接受一个长度为50的VARCHAR参数`@idnumber`,默认为空字符串。
- 函数内部使用DECLARE语句声明变量,如返回值`@ReturnText`,分隔符`@Separator`,身份证号码的各个元素`@idnumberElement`等。
- 使用循环结构遍历身份证号码的每一位,进行校验码计算。
- 如果是15位身份证号码,会在末尾添加1900年和性别码(奇数男性,偶数女性),然后重新计算校验码。
此代码段提供了一种实用的方法来验证输入的身份证号码是否符合中国的身份证号码规则,对于数据库操作和数据验证场景非常有用。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2024-10-25 上传
2020-01-17 上传
2020-05-28 上传
582 浏览量
weixin_38516706
- 粉丝: 9
- 资源: 888
最新资源
- Angular实现MarcHayek简历展示应用教程
- Crossbow Spot最新更新 - 获取Chrome扩展新闻
- 量子管道网络优化与Python实现
- Debian系统中APT缓存维护工具的使用方法与实践
- Python模块AccessControl的Windows64位安装文件介绍
- 掌握最新*** Fisher资讯,使用Google Chrome扩展
- Ember应用程序开发流程与环境配置指南
- EZPCOpenSDK_v5.1.2_build***版本更新详情
- Postcode-Finder:利用JavaScript和Google Geocode API实现
- AWS商业交易监控器:航线行为分析与营销策略制定
- AccessControl-4.0b6压缩包详细使用教程
- Python编程实践与技巧汇总
- 使用Sikuli和Python打造颜色求解器项目
- .Net基础视频教程:掌握GDI绘图技术
- 深入理解数据结构与JavaScript实践项目
- 双子座在线裁判系统:提高编程竞赛效率