我在我的数据库中遇到了一些有趣的事情。主键增加如下:
1
2
3
4
5
6
7
8
1001
我正在使用 EntityFramework 或有时使用 LINQ to SQL。
我在我的数据库中遇到了一些有趣的事情。主键增加如下:
1
2
3
4
5
6
7
8
1001
我正在使用 EntityFramework 或有时使用 LINQ to SQL。
当 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
这一切都很正常。Microsoft 在 SQL Server 2012 中添加了序列,请查看此处的链接以获得一些解释。
如果你想拥有旧的行为,你可以:
使用跟踪标志 272 - 这将导致为每个生成的身份值生成日志记录。打开此跟踪标志可能会影响身份生成的性能。使用带有 NO CACHE 设置的序列生成器 ( http://msdn.microsoft.com/en-us/library/ff878091.aspx )