为表设置下一个自动编号的算法

本文关键字:编号 算法 设置 下一个 | 更新日期: 2023-09-27 18:29:29

我有一个名为AutoNumber的表,它有类似的字段

    Public Class AutoNumber{
    int Id,
    Bool Autogenerate 
    Book IsLocked,
    Int IncrementValue,
    String Prefix,
    String Postfix,
    int IdentityValue
    string ModuleName
    }

我将模块的设置存储在此表中。在这个表中,我存储了模块的下一个自动编号。因此,每当我创建客户时,我都会激发查询并获取自动编号的值。

现在,这与单次创建和单次保存很好地配合使用,在保存客户后,我可以检查标识值并设置NextAutoNumber。

我有一个功能,用户可以一次创建多个客户,指定10这样的计数,所以它会为客户创建临时的autoNos,确保它不会重复。

但有一种设置是autogenerate是true,islocked是false,这种设置破坏了我的代码。

启用此设置时,我无法设置下一个autoNumber。用户根据自己的意愿更改了autoNo,我无法确定该用户是否输入了新值或其系统生成,因此无法设置下一个自动编号

为表设置下一个自动编号的算法

这不是一个答案。但我想给你一个建议,你可以使用静态计数器。此计数器将由所有用户不断更新,然后在某些情况下,您可以在将该计数器添加到现有数据库数量后重新开始计数。通过这种方式,您可以最大限度地减少对数据库的调用。