Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi INT Feld (Primary Key) auf NULL setzen? (https://www.delphipraxis.net/56578-int-feld-primary-key-auf-null-setzen.html)

Plague 8. Nov 2005 07:26

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

Sharky 8. Nov 2005 07:30

Re: INT Feld (Primary Key) auf NULL setzen?
 
Hai Thomas,

der einfachste Weg: Lösche die Tabelle und erzeuge sie neu.

Jelly 8. Nov 2005 07:30

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.

Jelly 8. Nov 2005 07:31

Re: INT Feld (Primary Key) auf NULL setzen?
 
Zitat:

Zitat von Sharky
der einfachste Weg: Lösche die Tabelle und erzeuge sie neu.

Damit machst Du aber unter Umständen noch vieles mehr kaputt... Trigger, Foreign Keys, Indizes (unique) etc.

Plague 8. Nov 2005 07:34

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!

Sharky 8. Nov 2005 07:36

Re: INT Feld (Primary Key) auf NULL setzen?
 
Zitat:

Zitat von Jelly
Damit machst Du aber unter Umständen noch vieles mehr kaputt...

Ähmm... was soll ich jetzt sagen *verzweifelt nach einer Ausrede sucht*?

Du hast natürlich recht :oops:

Catbytes 8. Nov 2005 07:55

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).

Plague 8. Nov 2005 08:26

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)...

Jelly 8. Nov 2005 09:18

Re: INT Feld (Primary Key) auf NULL setzen?
 
Hier nochmals zum Mitschreiben:
SQL-Code:
dbcc checkident (Tabellenname, reseed, 2)
im Query Analyzer eingeben und gut ist. 2 ist der neue Identity Wert. Der nächtste Datenstz kriegt also die Nummer 3 verpasst.

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.

mschaefer 8. Nov 2005 10:57

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 19:22 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz