![]() |
Datenbank: MSSQL • Version: 2000 • Zugriff über: -
INT Feld (Primary Key) auf NULL setzen?
Hallo,
ich habe folgendes Problem. Ich möchte nach den vielen Testläufen in meiner Datenbank wieder Ordnung schaffen. Sprich ich will dass alles gelöscht wird und auch der Primary Key wieder auf 0 gesetzt wird. Das Löschen war kein Problem, aber wie bekomme ich das INT Feld (auto_increment - also selbst hochzählend) wieder auf 0? Bin für jede Hilfe Dankbar!!! Gruß Thomas |
Re: INT Feld (Primary Key) auf NULL setzen?
Hai Thomas,
der einfachste Weg: Lösche die Tabelle und erzeuge sie neu. |
Re: INT Feld (Primary Key) auf NULL setzen?
Warum willst du das autoinc Feld auf null setzen? Dafür gibts doch keinen Grund. Diese identity Spalten werden im Prinzip nur für interne Referenzen verwendet und bleiben dem Anwender normalerweise verborgen. :gruebel:
Aber such mal in deiner T-SQL Doku nach DBCC CHECKIDENT , das sollte das sein was Du suchst. |
Re: INT Feld (Primary Key) auf NULL setzen?
Zitat:
|
Re: INT Feld (Primary Key) auf NULL setzen?
Also löschen werde ich die Tabelle auf keinen Fall *g*
Das ist ein generelles Problem das nicht nur diese Tabelle betrifft! Ich möchte das machen, da ich die Datenbank so übergeben muss (an meinen allmächtigen Chef) und der hat es extra so gewünscht! |
Re: INT Feld (Primary Key) auf NULL setzen?
Zitat:
Du hast natürlich recht :oops: |
Re: INT Feld (Primary Key) auf NULL setzen?
Hallo,
leere zuerst die Tabelle. Gehe in den Enterprise Manager und gehe auf "Tabelle bearbeiten". Springe zu dem Feld, daß Du wieder auf 0 setzen möchtest. Entferne die Integrität (Integrität=Nein). Achte darauf, daß der ID-Startwert auf 1 steht und die ID-Schrittwerte stimmen. Speicher kurz ab. Ändere die Integrität wieder auf "Ja". Der Zähler sollte wieder bei 1 beginnen (hat er zumindest gerade bei einer Testtabelle bei mir gemacht). |
Re: INT Feld (Primary Key) auf NULL setzen?
Bei mir soll er bei 10000 beginnen und ab da hochzählen. Muss ich dafür noch etwas gesondert beachten? Ansonsten würde ich es nämlich gleich mal ausprobieren (in der Hoffnung dass es klappt)...
|
Re: INT Feld (Primary Key) auf NULL setzen?
Hier nochmals zum Mitschreiben:
SQL-Code:
im Query Analyzer eingeben und gut ist. 2 ist der neue Identity Wert. Der nächtste Datenstz kriegt also die Nummer 3 verpasst.
dbcc checkident (Tabellenname, reseed, 2)
Vorsicht aber bei solchen Spielereien. Besitzt die Tabelle noch einen Datensatz mit ID 3 schlägt jeder Insert Befehl fehl da sonst ein doppelter Primary Key erzeugt werden würde. |
Re: INT Feld (Primary Key) auf NULL setzen?
Moin, zusammen,,
Wenn man den Primary-Key löscht und auf diesen liegt eine Verknüpfung, dann dürfte die auch betroffen sein. Da würde ich auf alle Fälle nochmal nachschauen. Sonst würde ich die Tabelle trivial leeren und gut! Wie das DBMS mit freien stellen im Key umgeht, das hängt doch von System zu System ab. Und selbst wenn es nur trivial hochzählt wie bei Paradox ist der Wertebereich so riesig, dass ein Überlauf in hundert oder zweihundert Jahren stattfindet. Man darf aber nicht vergessen, dass diese Megamenge an Datensätzen auch irgenwo gespeichert werden müssen. Aber vielleicht hat Dein Chef auch eine Trigabytefestplatte aus dem letzten StarTrek günstig ersteigert und braucht deshalb jeden Keycode. Also wenn das so ist, dann weisst Du jedenfalls warum er Cherf ist. FAZIT: Tabelle leeren und ein Wort zum Chef, bevor da noch irgendwas in den Innereien kaputt gemacht wird! Grüße // Martin |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:29 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz