Sprawdziłem to, co mówi Giogri i jeśli włączysz Specyfikację tożsamości (przynajmniej w 2008, prawdopodobnie także inne wersje) po tym, jak tabela ma wiersze, DB rozpocznie numerowanie od najwyższej wartości całkowitej. Jeśli masz jeden wiersz z wartością kolumny 100, a następnie włącz Identity, następna wstawka będzie miała wartość 101. Nawet z ziarnem tożsamości określonym jako 1. Nie było to, czego się spodziewałem, ale tak się stało.
Oprócz SET IDENTITY INSERT
, jest też polecenie reseed. DBCC CHECKIDENT
polecenie, które zresetuje twoje wartości tożsamości z powrotem do tych, które określiłeś.
Biorąc pod uwagę, że włączenie specyfikacji tożsamości faktycznie zaczyna się od najwyższej liczby całkowitej w kolumnie, prawdopodobnie ktoś użył opcji SET IDENTITY_INSERT
lub zrobiłeś DBCC CHECKIDENT
.
Najszybszym sposobem na zmianę kolejności, jak mówi Andomar, jest upuszczenie/odtworzenie kolumny w ten sposób
ALTER TABLE tbl
DROP COLUMN ident_column
GO
alter TABLE tbl
ADD ident_column int IDENTITY
SET IDENTITY_INSERT
dokumenty:http://msdn.microsoft.com/ en-us/library/aa259221(SQL.80).aspx
DBCC CHECKIDENT
dokumenty:http://msdn.microsoft.com/ en-us/library/aa258817(SQL.80).aspx