Ich habe getestet, was Giogri sagt, und wenn Sie die Identitätsspezifikation (mindestens auf 2008, wahrscheinlich auch andere Versionen) aktivieren, nachdem die Tabelle Zeilen enthält, beginnt die DB mit der Nummerierung beim höchsten ganzzahligen Wert. Wenn Sie eine Zeile mit 100 als Spaltenwert haben, dann aktivieren Sie Identität, die nächste Einfügung ist 101. Selbst wenn Identitäts-Startwert als 1 angegeben ist. War nicht das, was ich erwartet hätte, aber es ist passiert.
Zusätzlich zu SET IDENTITY INSERT
, gibt es auch einen Reseed-Befehl. DBCC CHECKIDENT
Befehl, der Ihre Identitätswerte auf das zurücksetzt, was Sie angeben.
Da die Aktivierung der Identitätsspezifikation tatsächlich bei der höchsten Ganzzahl in der Spalte beginnt, hat wahrscheinlich jemand entweder SET IDENTITY_INSERT
verwendet oder einen DBCC CHECKIDENT
durchgeführt haben .
Der schnellste Weg zur Neusequenzierung, wie Andomar sagt, besteht darin, die Spalte wie folgt zu löschen/neu zu erstellen
ALTER TABLE tbl
DROP COLUMN ident_column
GO
alter TABLE tbl
ADD ident_column int IDENTITY
SET IDENTITY_INSERT
Dokumente:http://msdn.microsoft.com/ de-us/library/aa259221(SQL.80).aspx
DBCC CHECKIDENT
Dokumente:http://msdn.microsoft.com/ de-us/library/aa258817(SQL.80).aspx