AutoInc simulieren

17/01/2008 - 14:24 von Günter Kieninger | Report spam
Hallo!

Ich muß auf einen bestehende Tabelle zugreifen und dort bei jedem
Insert den Wert + 1 erhöhen. Das Feld ist ein Float und ist der PK.
Leider kann ich dort kein AutoInc verwenden weil es ein Float ist und
ein Int und weil die Applikation die das hauptsàchlich verwaltet die
Nummern intern verwaltet (in einer eigenen Tabelle). Ich würde nun
gerne vermeiden, daß ich auf meiner Clientseite diese Nummer aus der
Hilfstabelle auslesen erhöhen, in die Haupttabelle eintragen und in die
Hilfstabelle retourschreiben muß und würde dies gerne über einen
Trigger machen. Und zwar immer dann, wenn der Wert in diesem Feld -1
ist, dann sollte der Trigger das Feld mit dem WErt aus der
hilfstabelle+1 befüllen und die Hilfstabelle updaten.

Wie gehe ich das am günstigsten an? Gibt es unter T-SQL einen Befehl in
der Form von Select LetzteNr from Hilfstabelle for Update wo diese
Hilfstabelle gesperrt wird, sodaß kein anderer in der kurzen Zeit den
selben Wert verwendet?

Gibt es vielleicht andere Wege um das zu erreichen bzw wie müßte der
Trigger ausschauen daß er wirklich einwandfrei funktioniert. Ich habe
leider wenig Erfahrung mit Triggern. Ich gehe mal davon aus, daß es ein

INSTEAD OF - Trigger sein muß
Und nicht ganz klar ist mir wie die das Nummern hochzàhlen, einfügen,
Nummer retourschreiben in die Hilfstabelle da realisieren kann.

Bin für jede Hilfe dankbar.

Gruß aus den Bergen
Günter
 

Lesen sie die antworten

#1 Frank Kalis
17/01/2008 - 14:55 | Warnen spam
On 17 Jan., 14:24, Günter Kieninger wrote:
Hallo!

Ich muß auf einen bestehende Tabelle zugreifen und dort bei jedem
Insert den Wert + 1 erhöhen. Das Feld ist ein Float und ist der PK.
Leider kann ich dort kein AutoInc verwenden weil es ein Float ist und
ein Int und weil die Applikation die das hauptsàchlich verwaltet die
Nummern intern verwaltet (in einer eigenen Tabelle). Ich würde nun
gerne vermeiden, daß ich auf meiner Clientseite diese Nummer aus der
Hilfstabelle auslesen erhöhen, in die Haupttabelle eintragen und in die
Hilfstabelle retourschreiben muß und würde dies gerne über einen
Trigger machen. Und zwar immer dann, wenn der Wert in diesem Feld -1
ist, dann sollte der Trigger das Feld mit dem WErt aus der
hilfstabelle+1 befüllen und die Hilfstabelle updaten.

Wie gehe ich das am günstigsten an? Gibt es unter T-SQL einen Befehl in
der Form von Select LetzteNr from Hilfstabelle for Update wo diese
Hilfstabelle gesperrt wird, sodaß kein anderer in der kurzen Zeit den
selben Wert verwendet?




Lies Dir das vielleicht mal durch:
http://groups.google.ch/group/micro...aaf851210b
Frank Kalis
Microsoft SQL Server MVP
Webmaster: http://www.insidesql.org

Ähnliche fragen