我有一个奇怪的场景,SQL Server 2012数据库中的auto identity int列没有正确递增.

假设我有一个表,它使用int auto标识作为主键,它偶尔会跳过增量,例如:

1,

这是在非常随机的时间在随机数的表上发生的,无法复制它来发现任何趋势.

这是怎么发生的?

推荐答案

这完全正常.Microsoft在SQL Server 2012中添加了sequences,最后,我可能会添加并更改身份密钥的生成方式.请看一下here的解释.

如果你想保持老习惯,你可以:

  1. 使用跟踪标志272-这将导致 for each 生成的标识值生成日志(log)记录.打开此跟踪标志可能会影响身份生成的性能.
  2. 使用无缓存设置(http://msdn.microsoft.com/en-us/library/ff878091.aspx)的序列生成器

Sql相关问答推荐

错误ORA-00908:通过全能自动化,缺少PLSQL编译器的关键字

如何更改函数返回的列名?

SUM(条件)在Oracle?

Postgres,使用iLike运算符从json数组中搜索的工作方式与从常规表中搜索不同

有没有办法用SQL编写一条CASE语句,如果列A&>0,那么列B,列C=0

使用WHERE子句进行筛选时,SQL SELECT查询返回总计数

对非RUST源代码字符串使用`stringify!`,例如SQL查询

SQL -滞后于上一个非重复值

Access VBA SQL命令INSERT FOR MULTIME VALUE

如何实现同一列的递归计算?

如何在连接中使用三个不同的列,从而在PostgreSQL中只获得两个列?

在SQL查询中查找客户端的最短日期比较列和多行

将二维数组的第一个和第二个元素取消嵌套到两个一维数组中

如何将 START 和 END 日期之间的日期差异作为 SQL 中的单独列获取

复制SQL Server临时表

按所选的值将记录分组到不同的列中

HIVE SQL where 子句未按预期工作

将 MERGE 语句与 Oracle PL/SQL 表类型一起使用时,导致无效数据类型错误的原因是什么?

在 PostgreSQL 中使用重音敏感排序进行重音不敏感搜索

Athena:从字符串birth_dt列计算年龄