PDA

View Full Version : SQL Last Insert ID



Seiten : [1] 2

Xanas
17-08-09, 10:42
Hallo,

gibt es für V5R4 eine Möglichkeit die automatisch generierte ID des gerade eingefügten Datensatzes zurück zu bekommen?

Fuerchau
17-08-09, 11:11
Nein, da gibt es leider keine Möglichkeit.
Hier musst du selber aktiv werden und ber Select die ID's herausfinden.

BenderD
17-08-09, 12:01
IDENTITY_VAL_LOCAL() ist dein Freund

D*B


Hallo,

gibt es für V5R4 eine Möglichkeit die automatisch generierte ID des gerade eingefügten Datensatzes zurück zu bekommen?

Fuerchau
17-08-09, 12:23
Nunja, wie "sicher" ist die Funktion ?
Könnte ja auch der Insert eines anderen Job's sein.

BenderD
17-08-09, 12:41
... die function liefert die letzte erzeugte ID innerhalb des Jobs, (wahrscheinlich sogar des letzten inserts innerhalb der Activation Group = Connection) und tut damit in den meisten Fällen (außer Bulk inserts) das, was sie soll und was man von ihr will.

D*B


Nunja, wie "sicher" ist die Funktion ?
Könnte ja auch der Insert eines anderen Job's sein.

Xanas
17-08-09, 14:03
Jaaaa coool, so was hab ich gesucht. Zur Verwendung noch eine Frage.

Also INSERT absetzen und dann
SELECT IDENTITY_VAL_LOCAL() FROM table FETCH FIRTS 1 ROWS ONLY
oder geht das schon direkt beim Insert?

Gruß
Xanas

Xanas
17-08-09, 14:08
Jaaaa coool, so was hab ich gesucht. Zur Verwendung noch eine Frage.

Also INSERT absetzen und dann
SELECT IDENTITY_VAL_LOCAL() FROM table FETCH FIRTS 1 ROWS ONLY
oder geht das schon direkt beim Insert?

Gruß
Xanas

Oh hab gerade gemerkt, das der Select auf irgend einen Table gehen kann...

Fuerchau
17-08-09, 14:34
Ggf. reicht hier dann auch ein:

exec sql set : MyLastIdentity = IDENTITY_VAL_LOCAL();

Xanas
17-08-09, 14:41
exec sql set : MyLastIdentity = IDENTITY_VAL_LOCAL();

ich benutze keine Embedded SQL an der Stelle sondern das QSQPRCED API, kann man das evtl. auch über EXECUTE direkt ausführen?

Fuerchau
17-08-09, 14:51
Da hast du wohl leider Pech gehabt.