我在数据库中遇到了一些有趣的事情。主键增加如下:
1
2
3
4
5
6
7
8
1001
我正在使用EntityFramework或有时使用LINQ to SQL。
答案 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)
的序列生成器