数据库中的自动增量

时间:2013-11-19 10:54:11

标签: asp.net

我使用SQL Server,当我创建一个新表时,我将特定字段设为自动增量主键。 并且其自动增量字段为1,但最后两个字段的增量变为1008和1009 像这样1,2,3,4,5,6,7,1008,1009。 非常感谢。

3 个答案:

答案 0 :(得分:0)

这是因为您在插入后删除了一些记录,增量从您删除条目的前一个点开始继续。 因此,要解决此问题,只需关闭自动增量和保存表,然后再次应用自动增量和保存表。

答案 1 :(得分:0)

如果在Sql server中使用IDENTITY列,则无法控制数字。您获得的唯一保证是数字将是唯一的,并且稍后生成的数字将大于先前的数字。在回滚交易中,数字序列中存在整体风险。

如果您需要严格控制序列并且不允许序列中的任何整体,您必须自己实施。如果有多个客户端同时更新,请记住向包含序列的数据库表添加适当的锁定。

答案 2 :(得分:0)

这是SQL Server中自动递增的标识字段的自然行为。这有几个原因:重新启动,删除行,服务器同时运行多个源的多个插入等等...... PK不应该在您的应用程序/编码中“表示”任何内容,它只是一个指向一行数据的唯一指针。如果它在代码中“意味着什么”,则应删除自动增量规范并自行处理递增。它不会也不应该用于表示表中的行数。