我有一个名为tblUserLogin的表。其中一列标记为UserID。 Evertime我添加一个用户按顺序编号(例如1,2,3)。如果我删除数字2& 3然后添加另一个用户,用户的UserID为4,下一个数字排成一行。它应该是2号吗?这是属性窗口中需要调整的设置吗?感谢
答案 0 :(得分:6)
不,它绝对应该不是2.它可能是一个唯一的标识符。如果某个其他系统仍然知道用户ID 2,那么当它询问您的系统用户2时,您应该能够说该用户不存在 - 不会返回有关错误用户的信息。
基本上,重用标识符是一个非常糟糕的主意。一旦将标识符分配给实体,就不应该有相同的标识符(在相同的上下文中)引用不同的实体,也不应该有任何方式来更改用于该实体的标识符。
答案 1 :(得分:0)
但您没有说明您正在使用哪种数据库类型:
UserID列可能是标识列。这意味着它将采用从未使用的下一个值(如果您在sql server中,则为主题种子和增量设置)。
如果不自己承担生成这些身份的工作,就无法使用未使用的值。
答案 2 :(得分:0)
假设您正在使用SQL Server IDENTITY列,那么这就是正确和预期的行为。但是,如果您想从间隙重用已删除的ID,请查看SQL Server联机丛书中的示例B :Using generic syntax for finding gaps in identity values