标识列增量跳转

时间:2013-08-07 12:51:56

标签: asp.net sql-server linq entity-framework

我在数据库中遇到了一些有趣的事情。主键增加如下:

1
2
3
4
5
6
7
8
1001

我正在使用EntityFramework或有时使用LINQ to SQL。

2 个答案:

答案 0 :(得分:4)

当SQL Server 2012丢失其预先分配的序列号时会发生这种情况。

如果你想摆脱它,一个选择是使用traceflag:

DBCC TRACEON (272)

另一种选择是使用序列(没有缓存)而不是身份:

CREATE SEQUENCE MySeq AS int
  START WITH 1
  INCREMENT BY 1
  NO CACHE;

请参阅:http://www.big.info/2013/01/how-to-solve-sql-server-2012-identity.html

答案 1 :(得分:1)

这一切都很正常。 Microsoft在SQL Server 2012中添加了序列,请查看此处a link以获得一些解释。

如果您想拥有旧行为,可以:

使用跟踪标志272 - 这将导致为每个生成的标识值生成日志记录。打开此跟踪标志可能会影响身份生成的性能。 使用具有NO CACHE设置(http://msdn.microsoft.com/en-us/library/ff878091.aspx

的序列生成器