【问题标题】:Table ID (PrimaryKey) does not increase in a proper sequence in SQL Server表 ID (PrimaryKey) 在 SQL Server 中未按正确顺序增加
【发布时间】:2020-04-18 05:54:46
【问题描述】:

我该如何解决这个问题? SQL Server 中的主键突然增加。

    RoomTypeID
    2
    3
    4
    6
    1010

【问题讨论】:

  • IDENTITY 列值按顺序递增,但可能存在间隙。简而言之,您不必在意,因为目的是代理键。
  • 请不要发布没有描述的截图。这个网站上没有人愿意花时间在这个问题上,在那个问题上,你没有花一分钟。写下你的问题的文字描述。发布一些错误的数据。发布方案,表格,您尝试过的内容。不要乱扔带有链接的文本。
  • 您看到的是IDENTITY 列的记录有意和预期功能。 IDENTITY 的值除了始终递增且唯一之外毫无意义。
  • 另外,有趣的是,您关心的是从 6 到 1010 的跳跃,而不是从 4 到 6 的跳跃。

标签: sql sql-server sql-server-2012 primary-key auto-increment


【解决方案1】:

IDENTITY 和 SEQUENCE 生成针对速度进行了优化。因此 SQL Sever 仅将每 1000 个值生成的最后一个值保存到磁盘(默认情况下)。如果发生计划外关闭(甚至 SQL Server 2012 的计划关闭),序列生成将显示这个 1000 值的差距。

您可以使用database option 或设置Trace Flag 272 禁用值的缓存。但是将每个生成的值写入数据库会限制应用程序的吞吐量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-08
    • 2021-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-07
    相关资源
    最近更新 更多