In mehreren Antworten wird empfohlen, eine Aussage wie die folgende zu verwenden:
DBCC CHECKIDENT (mytable, RESEED, 0)
Aber das OP sagte "löschte einige Datensätze", die möglicherweise nicht alle sind, so dass ein Wert von 0 nicht immer der richtige ist. In einer anderen Antwort wurde vorgeschlagen, den maximalen aktuellen Wert automatisch zu ermitteln und auf diesen Wert zurückzusetzen. Dies führt jedoch zu Problemen, wenn die Tabelle keine Datensätze enthält, und daher gibt max () NULL zurück. Ein Kommentar schlug vor, einfach zu verwenden
DBCC CHECKIDENT (mytable)
um den Wert zurückzusetzen, aber ein anderer Kommentar gab korrekt an, dass dies den Wert nur auf das Maximum erhöht, das bereits in der Tabelle enthalten ist; Dies verringert den Wert nicht, wenn er bereits höher als das Maximum in der Tabelle ist, was das OP tun wollte.
Eine bessere Lösung kombiniert diese Ideen. Der erste CHECKIDENT setzt den Wert auf 0 zurück und der zweite setzt ihn auf den höchsten aktuell in der Tabelle enthaltenen Wert zurück, falls Datensätze in der Tabelle vorhanden sind:
DBCC CHECKIDENT (mytable, RESEED, 0)
DBCC CHECKIDENT (mytable)
Stellen Sie, wie in mehreren Kommentaren angegeben, sicher, dass in anderen Tabellen keine Fremdschlüssel vorhanden sind, die auf die gelöschten Datensätze verweisen. Andernfalls verweisen diese Fremdschlüssel auf Datensätze, die Sie nach dem erneuten Einfügen der Tabelle erstellt haben. Dies ist mit ziemlicher Sicherheit nicht das, was Sie sich vorgestellt haben.