我在SQL Server 2012中使用identity specification
表。让我们有两个Insert
然后两个Delete
操作。在这些操作之后,主键应该从1开始,但它将从3开始。我很担心这个问题在很长一段时间后没有插入新项目的地方。 SQL Server 2012本身是否填补了这些空白?
如果可能,请向我推荐一份文档(例如来自microsoft)
更新1:
我听说它可以随机跳转。特别是当服务器重新启动时。我每500毫秒插入表格。让我的主键跳到1,000,000,000。像这样的两次跳跃足以终止我的程序。
答案 0 :(得分:4)
类型为INT
,从1开始,你会得到超过20亿的可能值 - 对于绝大多数情况来说应该绰绰有余 - 即使有一些的间隙。
想一想:如果你从1开始使用INT IDENTITY
,并且你整天每一天都插入每秒一行,那么你需要在达到20亿的限制之前, 66。5年 ....
使用BIGINT
,你可以得到 922千兆(922,15个零 - 922'000亿) - 足够你?如果您从1开始使用BIGINT IDENTITY
,并且每年插入每秒一千行,那么整天,每年的每一天,您需要一个令人难以置信的 2.92亿几年,然后达到922千万亿的限制......