Asp.net

標識列增量跳轉

  • September 10, 2016

我在我的數據庫中遇到了一些有趣的事情。主鍵增加如下:

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 )

引用自:https://stackoverflow.com/questions/18103908