Hallo!

Alte PC-Namen wieder neu zu verwenden halte ich f�r eine gef�hrliche
Idee, die immer dann zum Chaos f�hrt, wenn der Name auch als
Fremdschl�ssel in anderen Tabellen vergeben wird. Mache das also nur,
wenn Du neben diesem "sauberen" PC-Namen einen anderen Prim�rschl�ssel
hast (Ger�tenummer oder ID oder GUID).

Den neuen Namen, bzw. die neue Nummer findest Du am einfachsten, in dem
Du Datens�tze nicht l�schst, sondern stattdessen mit einem Flag
versiehst, mit dem Du sowohl freie Nummern suchen als auch die
gel�schten PCs aus den Auswertungen ausschlie�en kannst. Sehr elegant
geht das in einem INSTEAD-OF-Trigger FOR INSERT, der zu einer View
definiert wird, so dass Du innerhalb des Triggers in die Tabelle
einf�gen kannst. Die neue Nummer findest Du dann mit

DECLARE neueNummer INT
SELECT TOP 1 neueNummer = Nummer FROM pcs WHERE gel�scht = 1 ORDER BY
Nummer ASC
IF @@ROWCOUNT = 0
   SELECT neueNummer = MAX(Nummer) + 1 FROM pcs

In der Datenbank ist die Nummer also numerisch (INT). Das Pr�fix setzt
Du erst in einer View davor.

Da die Anzahl der PCs sicherlich �berschaubar ist, kannst Du auch
einfach eine zus�tzliche Tabelle mit 50 oder 5.000 PC-Namen anlegen in
der Du dann lediglich vermerkst, ob eine Nummer bereits vergeben oder
frei ist.

Freundliche Gr��e
Joachim van de Bruck 

> -----Urspr�ngliche Nachricht-----
> Von: P. Schwander [mailto:elvis@;clients.ch] 
> Gesendet: Mittwoch, 13. November 2002 16:44
> An: ASP Datenbankprogrammierung
> Betreff: [aspdedatabase] so was �hnliches wie autowert
> 
> 
> Hallo Miteinander
> 
> Ich versuche eine Verwaltung f�r PC's zu schreiben. Dabei 
> kann ich folgendes Problem nicht l�sen: In der Datenbank 
> werden die Namen der Computer gespeichert (sie sehen in etwa 
> so aus PC001, PC002, ...). Die Namen d�rfen nat�rlich nur 
> einmal vorkommen und bei einem neuen Computer soll ein 
> einsprechender Name vorgeschlagen werden. Ich k�nnte das ja 
> mit Hilfe eines Autowertes bewerkstelligen, doch wenn ein 
> Computer gel�scht wird, soll mir beim n�chsten Computer der 
> Name des gel�schten Computers vorgeschlagen werden (so dass 
> keine L�cken entstehen). Haat jemand eine Idee, wie ich (auf 
> vern�nftige Weise) eindeutige Namen bekomme (ohne L�cken), 
> die eindeutig sind?
> 
> Vielen Dank f�r Eure Hilfe!
> 
> -- pipo
> 
> 
> | [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
> 


| [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