我是靠谱客的博主 美丽黄豆,这篇文章主要介绍生成流水号,现在分享给大家,希望可以做个参考。

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


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 ) ;


最后

以上就是美丽黄豆最近收集整理的关于生成流水号的全部内容,更多相关生成流水号内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部