Sql Server 主键由字母数字组成并按照数字自动增长
2014-05-14 18:39
501 查看
在SQL SERVER 中如果我们想要使主键按照一定规则自动增长我们可以这样做:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202010/29/c9779641637be0f22875288c18df631c.png)
这里我们新建一张研究表,里面有研究ID,研究人员姓名和研究医院.
我们使SicentificId 设为主键 并且从1开始每次递加1.
这里要更各位强调一下使用Identity 关键字的前提要求是 数据类型必须为 int ,decimal,bigint,smallint等数值类型.
但是很多时候只有一个数字编号并不能满足我们的要求, 这里笔者的需求就是编号要按照字母加数字的组合,并且字母固定且数字每次递增1.
那么我们该怎么做呢?本来我以为可以直接用数据库约束来做,但是尝试很多次都失败了.
现在如果要满足要求就需要对数据库表做一下修该。
我们把ScientificA 表的ScientificId 的数据类型改为varchar(15).
然而我们如何来保证数据ID按照一定的规则自增呢,首先我们的字母前缀是固定的,这里使用'yanjiu' 作为字母前缀。例如这样 'yanjiu100000' 。
下一个ID 就应该是'yanjiu100001' ,为达到我们的构想,只使用一条sql 语句是不能实现的,我们需要来编写多条.
![](https://oscdn.geek-share.com/Uploads/Images/Content/202010/29/2ab723848cf56ef28c86c6951d085251.png)
这里是笔者写的sql 语句,可以满足要求。
结果如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202010/29/a5ed5a08cd04645572d3e5d4cd55bf61.png)
有需要的朋友可以参考下,也可以按照需求改为存储过程,触发器等.
欢迎各位提出意见.
![](https://oscdn.geek-share.com/Uploads/Images/Content/202010/29/c9779641637be0f22875288c18df631c.png)
这里我们新建一张研究表,里面有研究ID,研究人员姓名和研究医院.
我们使SicentificId 设为主键 并且从1开始每次递加1.
这里要更各位强调一下使用Identity 关键字的前提要求是 数据类型必须为 int ,decimal,bigint,smallint等数值类型.
但是很多时候只有一个数字编号并不能满足我们的要求, 这里笔者的需求就是编号要按照字母加数字的组合,并且字母固定且数字每次递增1.
那么我们该怎么做呢?本来我以为可以直接用数据库约束来做,但是尝试很多次都失败了.
现在如果要满足要求就需要对数据库表做一下修该。
我们把ScientificA 表的ScientificId 的数据类型改为varchar(15).
然而我们如何来保证数据ID按照一定的规则自增呢,首先我们的字母前缀是固定的,这里使用'yanjiu' 作为字母前缀。例如这样 'yanjiu100000' 。
下一个ID 就应该是'yanjiu100001' ,为达到我们的构想,只使用一条sql 语句是不能实现的,我们需要来编写多条.
![](https://oscdn.geek-share.com/Uploads/Images/Content/202010/29/2ab723848cf56ef28c86c6951d085251.png)
这里是笔者写的sql 语句,可以满足要求。
结果如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202010/29/a5ed5a08cd04645572d3e5d4cd55bf61.png)
有需要的朋友可以参考下,也可以按照需求改为存储过程,触发器等.
欢迎各位提出意见.
相关文章推荐
- 编号字段以字母和数字组成,并且数字可以自动增长
- 员工编号总共6位,由字母XD+4位数字编号组成(如XD0001) * 必须唯一,在新增时自动生成,数字编号自动增长。在修改时,员工编号无法修改。
- sql server,Oracle通用处理自动产生流水编号:字母、日期、数字等组成
- [SQL Server]创建表-自动增长字段且为主键
- 解决SQL server 2005主键自动增长问题
- sql server 2005 主键自动增长的替代方案
- sql用函数解决编码由字母和数字结合起来自动增长的问题
- SQL server修改主键为自动增长
- SQL Server 编写自动增长的字符串型主键
- SQL Server主键自动增长的设置
- mysql,sql server,Oracle主键自动增长的设置
- sql server小技巧-自动添加时间与主键自增长
- SQL Server 2008 设置主键自动增长
- sqlSever 存储过程 中 创建 事务(增删改操作),唯一的主键自动生成 (格式:自定义字母+时间+五位数字,例如:S2014103010001)
- SQL server 2005主键序列自动增长问题
- sql server 忘记设置主键 自动增长
- SQL Server 2005的output取出插入的值(自动增长ID等等)
- sql server自动生成拼音首字母的函数
- sql server 按照日期自动生成单据编号的函数
- 初识Hibernate(中文乱码问题+主键自动增长)