首页 > 解决方案 > 如何按顺序获取下一个可用号码?

问题描述

表有一个字段是一个计数器。
删除记录后,计数器编号再次可用。
新记录必须使用最低的可用“槽”作为计数器。

例子:

Material | Counter    
00AF10 | 02    
00AF11 | 03    
00AF12 | 04  

在这种情况下,新插入的记录将采用计数器编号“01”和之后的新记录,即计数器编号“05”。

我已经尝试将 select max counter + 1 作为新记录,但这当然不会满足在计数器序列中使用可用“插槽”的要求。我正在熬夜,我的大脑被炸了。你能帮我吗?

标签: sql-server

解决方案


你不应该这样做,这是一个坏主意,不仅在技术上而且在商业上也没有什么意义,也没有提供真正的好处。

但是,如果您真的必须这样做,并且获得不同的工作不是一种选择。

我会创建一个包含两列的新表,一列用于连续值,另一列是您的其他数据的外键,可能会被删除。

然后,您可以使用可怕的跨国触发器处理删除和插入,但至少您将能够适当地索引您的新表。


推荐阅读