AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi INT Feld (Primary Key) auf NULL setzen?
Thema durchsuchen
Ansicht
Themen-Optionen

INT Feld (Primary Key) auf NULL setzen?

Ein Thema von Plague · begonnen am 8. Nov 2005 · letzter Beitrag vom 9. Nov 2005
Antwort Antwort
Seite 1 von 2  1 2      
Plague

Registriert seit: 6. Okt 2003
591 Beiträge
 
#1

INT Feld (Primary Key) auf NULL setzen?

  Alt 8. Nov 2005, 08:26
Datenbank: MSSQL • Version: 2000 • Zugriff über: -
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
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#2

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

  Alt 8. Nov 2005, 08:30
Hai Thomas,

der einfachste Weg: Lösche die Tabelle und erzeuge sie neu.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#3

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

  Alt 8. Nov 2005, 08:30
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.
Aber such mal in deiner T-SQL Doku nach DBCC CHECKIDENT , das sollte das sein was Du suchst.
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#4

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

  Alt 8. Nov 2005, 08:31
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.
  Mit Zitat antworten Zitat
Plague

Registriert seit: 6. Okt 2003
591 Beiträge
 
#5

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

  Alt 8. Nov 2005, 08:34
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!
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#6

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

  Alt 8. Nov 2005, 08:36
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
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Catbytes
Catbytes

Registriert seit: 7. Sep 2002
Ort: Heckendalheim
353 Beiträge
 
Delphi XE5 Enterprise
 
#7

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

  Alt 8. Nov 2005, 08:55
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).
Catbytes
  Mit Zitat antworten Zitat
Plague

Registriert seit: 6. Okt 2003
591 Beiträge
 
#8

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

  Alt 8. Nov 2005, 09:26
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)...
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#9

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

  Alt 8. Nov 2005, 10:18
Hier nochmals zum Mitschreiben:
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.
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.032 Beiträge
 
Delphi 12 Athens
 
#10

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

  Alt 8. Nov 2005, 11:57
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
Martin Schaefer
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:51 Uhr.
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