2013-08-07 13 views
8

Mam coś zabawnego w mojej bazie danych. Klucz podstawowy zwiększa się:Skok przyrostowy kolumny tożsamości

1 
2 
3 
4 
5 
6 
7 
8 
1001 

Używam EntityFramework lub czasami LINQ do SQL.

+0

Czy wkładka zawodzi w pewnym momencie? –

+1

Jeśli używasz programu SQL Server 2012, jest to błąd. –

+1

http://connect.microsoft.com/SQLServer/feedback/details/739013/alwayson-failover-results-in-reseed-of-identity –

Odpowiedz

4

Dzieje się tak, gdy serwer SQL 2012 straci wstępnie przydzielone numery sekwencji.

Jeśli chcesz pozbyć się, że jedną z możliwości jest użycie TRACEFLAG:

DBCC TRACEON (272) 

Inną opcją jest użycie sekwencji (bez buforowania) zamiast tożsamości:

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

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

+0

Pobłogosław was wszystkich. kciuki w górę – ojorma

1

Wszystko to jest zupełnie normalne. Microsoft dodał sekwencje w SQL Server 2012, zajrzyj tutaj pod numer a link, aby uzyskać wyjaśnienie.

Jeśli chcesz mieć starego zachowania można:

stosowanie śladu flag 272 - to spowoduje zapis dziennika mają być generowane dla każdej wytworzonej wartości tożsamości. Na wydajność generowania tożsamości może wpłynąć włączenie tej flagi śledzenia. użyć generatora sekwencji z ustawieniem NIE CACHE (http://msdn.microsoft.com/en-us/library/ff878091.aspx)

Powiązane problemy