Hallo,

Tabelle ist um Längen besser als DTAARA, weil man eine Tabelle für alle Keys verwenden und das Sperrverhalten unter SQL feinkörnig steuern kann. Wenn man keine lückenlose Sequenz braucht, kann man für Performance Optimierung blocken (Standardroutine zieht sich n Keys, die dann in der aktuellen Aktivierung benutzt werden. SQL Auto Increment Felder machen im Grunde dasselbe, Eigenprogrammierung ist etwas flexibler.

mfg

Dieter Bender

PS für die Ketzter, die ansonsten meine Sympathie genießen: Keyfelder ohne semantischen Inhalt haben den Vorteil, dass bei Änderung Referenzen erhalten bleiben (im Beispiel: Zusammenfasssung zweier Aufträge zu einem)
Zitat Zitat von Allrounder Beitrag anzeigen
Folgende Situation:
Das eindeutige Key-Feld einer PF hat den Nachteil, dass es aus einer laufenden Nummer und einer Auftragsnummer zusammengesetzt ist. Um Inhalt in Keyfeldern zukünftig zu vermeiden, wollen wir im ersten Schritt zum Jahreswechsel dieses Keyfeld mit einer eindeutigen ID füllen, ohne Inhalt nur fortlaufend.
(Zweiter Schritt ist der Umstieg auf eine SQL-Tabelle mit Auto-Increment, aber jetzt noch kein Thema).
Die ID soll auch mit einer Prüfziffer versehen werden.

Die Frage ist, welche Variante am sinnvollsten ist.

Ich tendiere zu einer Prozedur, die eine Keytabelle oder eine SQL-Sequence (oder einen Datenbereich?) ausliest und die ID mit generierter Prüfziffer zurückgibt.

Sind Sequenzen zu empfehlen? Habe noch keine Erfahrung damit.
Und wie vermeide ich am besten Kollisionen beim Zugriff auf eine Keytabelle? Oder ist der gute alte Datenbereich die beste Lösung?

Danke im Voraus für Eure Meinungen.