2012-04-10 8 views
-2

Ich benutze SqlServer 2005 und ich habe eine Tabelle, in der ich eine automatisch inkrementierende Spalte habe, aber aus irgendeinem Grund beginnt das automatische Inkrementierungsfeld nicht mit 1, sondern mit einer Zufallszahl wie 21,91. Warum passiert das?Auto-Inkrement-Spalte in SQL Server beginnt nicht immer bei 1?

+1

Zeigen Sie Ihre Tabellendefinition an und schreiben Sie nicht alles groß. –

+0

Warum schreist du? Sie könnten [Dokumentation auf dbcc checkident überprüfen] (http://msdn.microsoft.com/en-us/library/ms176057%28v=sql.105%29.aspx) –

Antwort

1

Sie müssen entweder die Seed für die Spalte setzen .... oder wenn Sie zuvor Zeilen eingegeben hatten, benötigen Sie einen TRUNCATE TABLE Befehl auf dem Tisch auszuführen ...

TRUNCATE TABLE XYZ 
1

mssql ist nicht mit max (id) + 1 als Identität wie andere Datenbanken. Es speichert die zuletzt verwendete ID und inkrementiert sie.

Sie die Identität reseed können:

DBCC CHECKIDENT ('tablex', RESEED, 1) 

oder die Tabelle gestutzt, das auch alle Daten zu löschen:

TRUNCATE TABLE tablex 

können Sie natürlich auch kombinieren, um die Identität mit dem letzten Wert reseed:

Aber seien Sie sich der Erzeugung von Fehlern beim Nachsetzen der ID aufgrund von Konflikten bewusst, die aut o Inkrement ID ist einzigartig!