Hallo! > Ich habe eine Datenbank und die ID wird durch einen Autowert gef�llt. > > Per Web-Interface kann man nun Datens�tze l�schen und hinzuf�gen. Wenn ich > aber die Datens�tze mit den h�chsten ID's z.B. 6, 7 und 8 l�sche und einen > neuen hinzuf�ge dann wird diesem Datensatz die ID 9 zugewiesen. > > Gibt es keine M�glichkeit dass die ID's sich sozusagen selbst anordnen ? Das > heisst wenn auch zum Beispiel bei 5 Datens�tzen mit ID 1 2 4 5 und 6, > automatisch dem neuen Datensatz die ID 3 zugewiesen wird ? > > Bin dankbar f�r jede Antwort
F�r einen Autowert geht das so nicht und es gibt, wie Du in der Diskussion erkennen kannst, auch viele gute Gr�nde daf�r. Der "n�chste Autowert" ist eine Eigenschaft des Tabellenobjekts. Man kann diese Eigenschaft lesen und auch ver�ndern. Oder man kann vor�bergehend den Spaltentyp in Integer ver�ndern und dann in die Autowert-Spalte beliebige Zahlen schreiben; notfalls auch die Indexes ausschalten. Ganz sicher ist, dass Du irgendwann einmal ein dickes Problem damit bekommst. Mein Tipp: vergiss f�r so etwas den Autowert. Wenn Du also eine Spalte mit aufsteigenden Zahlen haben m�chtest, solltest Du das anders - eben nicht mit Autowert - l�sen. Auf der sicheren Seite bist Du, wenn Du eine Autowert-Spalte als ID und zus�tzliche eine Spalte mit l�ckenlos aufsteigenden Werten f�r die Ausgabe definierst. Am einfachsten ist es, wenn Du eine Tabelle anlegst, die eine Zeile f�r den "n�chsten Autowert" enth�lt und zus�tzliche Zeilen f�r gel�schte Werte. Damit kannst Du dann eine normale Integer-Spalte - zus�tzlich zur ID-Spalte - f�llen. Das geht mit Triggern oder benutzerdefinierten Funktionen in SQL-Server recht einfach und schnell, vor allem, wenn die Werte nicht als Fremdschl�ssel in anderen Tabellen verwendet werden. In dem Fall solltest Du tats�chlich auf die "sch�ne" equidistante Reihe verzichten. Alternativ dazu kannst Du auch die hier in den letzten Wochen diskutierte Ranking-Funktion nutzen, um immer aufsteigende Werte f�r die Ausgabe zu generieren. Freundliche Gr��e Joachim van de Bruck | [aspdedatabase] als [email protected] subscribed | http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv | Sie k�nnen sich unter folgender URL an- und abmelden: | http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp
