在SQL SERVER 中如果我们想要使主键按照一定规则自动增长我们可以这样做:

Sql Server 主键由字母数字组成并按照数字自动增长-LMLPHP

这里我们新建一张研究表,里面有研究ID,研究人员姓名和研究医院.

我们使SicentificId 设为主键 并且从1开始每次递加1.

这里要更各位强调一下使用Identity 关键字的前提要求是 数据类型必须为 int ,decimal,bigint,smallint等数值类型.

但是很多时候只有一个数字编号并不能满足我们的要求, 这里笔者的需求就是编号要按照字母加数字的组合,并且字母固定且数字每次递增1.

那么我们该怎么做呢?本来我以为可以直接用数据库约束来做,但是尝试很多次都失败了.

现在如果要满足要求就需要对数据库表做一下修该。

我们把ScientificA 表的ScientificId 的数据类型改为varchar(15).

然而我们如何来保证数据ID按照一定的规则自增呢,首先我们的字母前缀是固定的,这里使用'yanjiu' 作为字母前缀。例如这样 'yanjiu100000'   。

下一个ID 就应该是'yanjiu100001' ,为达到我们的构想,只使用一条sql 语句是不能实现的,我们需要来编写多条.

Sql Server 主键由字母数字组成并按照数字自动增长-LMLPHP

这里是笔者写的sql 语句,可以满足要求。

结果如下:

Sql Server 主键由字母数字组成并按照数字自动增长-LMLPHP

有需要的朋友可以参考下,也可以按照需求改为存储过程,触发器等.

欢迎各位提出意见.

05-06 23:58