Sql server自动递增随机

时间:2014-02-22 09:32:45

标签: sql sql-server

好的,所以我用这段代码来制作表格:

CREATE TABLE Clients
(
ID int IDENTITY(1,1) PRIMARY KEY,
NAME varchar(20) NOT NULL,
BALANCE int NOT NULL,
)

它在前几次运行良好,在我添加新记录之后,它就像一个随机ID:

The problem

我真的不知道问题是什么,所以你可能会告诉我?

1 个答案:

答案 0 :(得分:3)

这一切都很正常。 Microsoft在SQL Server 2012中添加了sequences

默认情况下,在创建SEQUENCE时,您可以提供CACHE大小。缓存用于通过最小化生成序列号所需的磁盘IO数来提高使用序列对象的应用程序的性能。

要解决此问题,您需要确保在序列创建/属性中添加NO CACHE选项,如下所示。

CREATE SEQUENCE TEST_Sequence
    AS INT
    START WITH 1
    INCREMENT BY 1
    MINVALUE 0
    NO MAXVALUE
   NO CACHE

Sequence number

  1. 使用跟踪标志272 - 这将导致生成日志记录 对于每个生成的标识值。身份的表现 通过打开此跟踪标志可能会影响生成。
  2. 使用具有NO CACHE设置的序列生成器 (http://msdn.microsoft.com/en-us/library/ff878091.aspx
  3. Identity column value suddenly jumps to 1001 in sql server