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

Antwort per Email an