我是靠谱客的博主 美丽黄豆,最近开发中收集的这篇文章主要介绍生成流水号,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

推荐方法:使用单独的表来做生成编号的操作


SQL code
-- 编号表 CREATE TABLE dbo.tb_id( name varchar ( 50 ) -- 业务名称,比如是用于某个表的id 生成的表名 PRIMARY KEY , id int , -- 当前编号 seed int -- 编号增长值 ); GO

使用之前初始化编号表,填入业务以及初始的编号 如:2012081900001 和每次增长的增长值,通常为1

当要取号的时候,取编号表的对应业务编号,并进行update操作来取号

这样编号表中可能只有几行到几十行的数据,数据量很小,取号效率非常高,同时用update 避免了并发去重号的问题

以下附上取号的操作代码供大家参考

SQL code
-- 取下一个编号的公共存储过程 CREATE PROC dbo.p_GetID @name varchar ( 50 ), @id int OUTPUT AS SET NOCOUNT ON ; UPDATE dbo.tb_id SET @id = id + seed, id = @id WHERE name = @name ; GO -- 使用之前,先初始化一条数据 INSERT dbo.tb( name, id, seed ) VALUES ( ' test ' , 0 , 1 ) ; -- 需要新的id 时,调用公用的存储过程进行获取 DECLARE @id int ; EXEC dbo.p_GetID @name = N ' test ' , @id = @id OUTPUT ; SELECT 当前编号 = @id , 需要格式化的话 = ' XS ' + RIGHT ( 1000000 + id, 6 ) ;


最后

以上就是美丽黄豆为你收集整理的生成流水号的全部内容,希望文章能够帮你解决生成流水号所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(84)

评论列表共有 0 条评论

立即
投稿
返回
顶部