2013-08-07 25 views
8

Tôi đang trải nghiệm điều gì đó hài hước trong cơ sở dữ liệu của mình. Khóa chính tăng như:Nhảy tăng cột danh tính

1 
2 
3 
4 
5 
6 
7 
8 
1001 

Tôi đang sử dụng EntityFramework hoặc đôi khi LINQ to SQL.

+0

lỗi chèn của bạn có bị lỗi không? –

+1

Nếu bạn đang sử dụng SQL Server 2012, đó là lỗi. –

+1

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

Trả lời

4

Điều này xảy ra khi máy chủ SQL 2012 mất số thứ tự được phân bổ trước của nó.

Nếu bạn muốn thoát khỏi đó, một lựa chọn là sử dụng traceflag:

DBCC TRACEON (272) 

Một lựa chọn khác là sử dụng một chuỗi (không có bộ nhớ đệm) thay vì về bản sắc:

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

Xem phần này: http://www.big.info/2013/01/how-to-solve-sql-server-2012-identity.html

+0

Bless tất cả các bạn. giơ ngón tay cái lên – ojorma

1

Điều này hoàn toàn bình thường. Microsoft thêm chuỗi trong SQL Server 2012, có một cái nhìn ở đây a link cho một số lời giải thích.

Nếu bạn muốn có các hành vi cũ, bạn có thể:

sử dụng dấu vết cờ 272 - điều này sẽ gây ra một kỷ lục ghi được tạo ra cho mỗi giá trị bản sắc tạo ra. Hiệu suất tạo danh tính có thể bị ảnh hưởng bởi việc bật cờ theo dõi này. sử dụng trình tạo trình tự có cài đặt NO CACHE (http://msdn.microsoft.com/en-us/library/ff878091.aspx)

Các vấn đề liên quan