Jeg testede, hvad Giogri siger, og hvis du aktiverer identitetsspecifikationen (i det mindste i 2008, sandsynligvis også andre versioner), efter at tabellen har rækker, starter DB nummereringen ved den højeste heltalsværdi. Hvis du har én række med 100 som kolonneværdi, så aktiver Identitet, den næste indsættelse vil være 101. Selv med Identity Seed angivet som 1. Var ikke, hvad jeg ville have forventet, men det er det, der skete.
Ud over SET IDENTITY INSERT
, er der også en reseed-kommando. DBCC CHECKIDENT
kommando, som vil nulstille dine identitetsværdier tilbage til det, du angiver.
Da aktivering af identitetsspecifikationen faktisk starter ved det højeste heltal i kolonnen, har nogen sandsynligvis enten brugt SET IDENTITY_INSERT
eller lavede en DBCC CHECKIDENT
.
Den hurtigste måde at gensekvensere, som Andomar siger, er at slippe/genskabe kolonnen sådan her
ALTER TABLE tbl
DROP COLUMN ident_column
GO
alter TABLE tbl
ADD ident_column int IDENTITY
SET IDENTITY_INSERT
docs:http://msdn.microsoft.com/ en-us/library/aa259221(SQL.80).aspx
DBCC CHECKIDENT
docs:http://msdn.microsoft.com/ en-us/library/aa258817(SQL.80).aspx