Categories: SQL Posted by Christoph on 11/3/2009 6:12 PM | Comments (0)

Ich einem aktuellen Projekt will ich gerade die Datenbank mal aufräumen, also alle relevanten Datensätze löschen.

Das geht mit TRUNCATE ja ganz gut, solange kein Foreign Key auf die Tabelle Zeigt. Dann kann man die Tabelle nur mittels DELETE * FROM leeren. Dabei werden jedoch NICHT die Anfangswerte der AutoInc Felder zurückgesetzt, so dass beim nächsten INSERT einfach vom alten Startwert hochgezählt wird. Man muss also händisch den Startwert zurücksetzen:

Wenn also Table1 eine Tabelle ohne auf Sie verweisende FKs ist, und Tabelle2 durch FKs gesperrt wird, kann folgendes die beiden Tabellen zurücksetzen:

truncate table Table1
delete from Table2
dbcc checkident(Table2,reseed,1)

Der Schlüssel wird also mittels dbcc checkident zurückgesetzt

Comments