如何确定新产品的编号?在数据库中编号字段格式为A0001

wsq2002 2004-11-04 11:49:39
我想让新加入产品的编号从A0001到A9999。每次添加产品,自动生成一个现有编号中没有使用的但是不一定是最大编号的。因为如果删除一个产品,可能这个编号就空下了。
如:现有产品A0001、A0002、A0004、A0010。那么我现在如果插入一个产品,应该生成A0003。再插入一个,应该生成A0005。
该怎么写才能比较简单的实现呢?初学小生请教各位大侠。
...全文
211 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
cpio 2004-11-04
  • 打赏
  • 举报
回复
for(int i=1;i<10000;i++)
{
if not exists(select id from 表 where convert(substring(编号,2,4),int)=i)
insert into 表
}
龍过鸡年 2004-11-04
  • 打赏
  • 举报
回复
这个问题其实不难, 你再建个表, 其中放置可用产品编号。
例如:
产品表为 A, 编号表 为 B;
A 中新建一个, B 中删除 A 中被新建的(TOP 1 + ORDER BY)。
A 中删除一个, B 中新建 A 中被删除的。
sbkyv 2004-11-04
  • 打赏
  • 举报
回复
我觉得二楼的方法是比较可行的!
daknis 2004-11-04
  • 打赏
  • 举报
回复
这个问题的解决办法:把数据库的自动编码列标识属性去掉

然后在向数据库中加入数据时候通过程序加入


i_need_mana 2004-11-04
  • 打赏
  • 举报
回复
没必要每次都遍历一遍,可再增加一字段IsNew标识为上次新加入的字段,每次再添加新记录时只需找到上一次的标识字段(IsNew=1)后,再继续往下找。

62,242

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧