eindeutige Nummer

04/12/2007 - 10:49 von werner meyer | Report spam
Hallo,
ich benötige gelegentlich eine fortlaufende Nummer in einer Tabelle.
Die Nummer muss fortlaufend sein (10,11,12,13,..)
Lücken können entstehen (z.B. durch Löschung von Datensàtzen) diese
dürfen NICHT gefüllt werden.
Die Nummer soll also zu dem jeweiligen Datensatz bestehen bleiben.

Zudem sollte die Vergabe der fortlaufenden Nummer auch im Netzwerk (mit
mehreren Benutzern) sicher sein.
Es sollte aber auch die Möglichkeit bestehen, die Nummer nachtràglich
àndern zu können.
(was mit IDENTITY wohl nicht funktioniert)

Hat jemand eine Idee?
 

Lesen sie die antworten

#1 Stefan Hoffmann
04/12/2007 - 11:47 | Warnen spam
hallo Werner,

werner meyer schrieb:
Zudem sollte die Vergabe der fortlaufenden Nummer auch im Netzwerk (mit
mehreren Benutzern) sicher sein.
Es sollte aber auch die Möglichkeit bestehen, die Nummer nachtràglich
àndern zu können.
(was mit IDENTITY wohl nicht funktioniert)


Richtig, ein Identity-Wert ist nicht zwingend fortlaufend.

Hat jemand eine Idee?


Du mußt sie dir selbst besorgen, ungefàhr so:

INSERT INTO [Tabelle] (Feldliste)
VALUES (
(SELECT Coalesce(Max([Spalte]) + 1, 1)
FROM [Tabelle]),
...
)

Der Trick bei ist hier die Gleichzeitigkeit im Zugriff, du mußt durch
geschicktes Locking der Tabelle sicherstellen, daß Lesezugriff für die
Bestimmung von Max([Spalte]) und das Schreiben in einem Rutsch geschehen.

Imho hat Elmar Boye dazu mal ein schönes Beispiel gepostet. Bemühe mal
Google dazu.


mfG

Ähnliche fragen