首页新闻找找看学习计划

Sqlserver数据库怎么生成自定义主键

0
悬赏园豆:100 [已解决问题] 解决于 2019-10-02 21:35

求教下,SqlServer怎么实现生成自定义主键,要求是0-9、a-z一共36个字符,类似于这样USER0000001,USER0000002。。。USER000000Z、USER0000010、USER0000011。。。一直到理想中最大值USERZZZZZZZ,请教下大佬,这个存储过程怎么实现啊

日行二善的主页 日行二善 | 菜鸟二级 | 园豆:222
提问于:2019-10-02 11:50
< >
分享
最佳答案
1

现成的不用想了
0...00000
...
0...0000Z
取最大值+1,转为36进制数,左补0。
其实你的是可以理解成36进制转换问题;类似于大家熟悉的16进制;
https://www.cnblogs.com/gaizai/p/4001016.html

https://blog.csdn.net/u010481729/article/details/51393458

收获园豆:100
张朋举 | 小虾三级 |园豆:1372 | 2019-10-02 17:46

非常感谢您,完美的解决了我的问题

日行二善 | 园豆:222 (菜鸟二级) | 2019-10-02 21:34
其他回答(2)
0

代码里生成之后赋值.

吴瑞祥 | 园豆:28675 (高人七级) | 2019-10-02 15:14

您好,可能是我表述不是很清楚,我是想知道在sqlserver怎么实现按这样规则生成主键,需要写存储过程实现,但是我的实现比较麻烦,想看下博客园的大佬有没有简单点的方法

支持(0) 反对(0) 日行二善 | 园豆:222 (菜鸟二级) | 2019-10-02 15:58
0

楼主这是自定义主键,这种的话,肯定需要自己写代码实现,想生成什么样的都成。

lhdz_bj | 园豆:218 (菜鸟二级) | 2019-10-02 16:19

对的,我就是想在sqlserver里面实现,代码里插入的时候在赋值,请教下这个用存储过程实现有简单的方法吗

支持(0) 反对(0) 日行二善 | 园豆:222 (菜鸟二级) | 2019-10-02 16:30

@日行二善: 这个根本不需要存储过程实现,你只需要定义一个变量就成,每次insert一行数据,就递增,然后,'USER'和这个变量拼起来就成。你这里的数字从1~z,倒不是不能实现,就是不太方便,用纯数字更好些。另外,如果你非要用存储过程,那就得传进前一个值,返回最新值,这个用函数实现比较方便。

支持(0) 反对(0) lhdz_bj | 园豆:218 (菜鸟二级) | 2019-10-09 17:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册