webForumDet fria alternativet

Sista posten med insert into

7 svar · 304 visningar · startad av Nöff

NöffMedlem sedan nov. 2003569 inlägg
#1

Hallo..

Om jag gör en INSERT INTO.
Och samtidigt vill få ut vilket ID nummer den posten fick.
Hur gör man detta?, om man inte vill använda en SELECT sats med TOP 1 direkt efter. Jag använder Access.

LarsGMedlem sedan dec. 200012 465 inlägg
#2

select @@identity

NöffMedlem sedan nov. 2003569 inlägg
#3

Hmm.

provade detta:
INSERT INTO kunder (datum) VALUES (#2003-12-30#) SELECT @@IDENTITY AS sista

men det funkade inte. fick
Exception Details: System.Data.OleDb.OleDbException: Semikolon saknas i slutet av SQL-uttryck.
som felmeddelande.

LarsGMedlem sedan dec. 200012 465 inlägg
#4

Du får göra det med två separata anrop.

NöffMedlem sedan nov. 2003569 inlägg
#5

Ajdå. det var inte bra, då måste jag bygga om min connection-funktion. eftersom jag använder funktioner för att dra ur grejer ur databasen,

tex datareader=GETSOMEDATA("SELECT * FROM customers");

och GETSOMEDATA skapar ett connection objekt och sen stänger det så fort funktionen körts så att säga. hmmm finns det ingen möjlighet att köra @@Identity i samma SQL fråga som UPDATE?. vore väldigt tacksamt.

LarsGMedlem sedan dec. 200012 465 inlägg
#6

Då kan du väl ha en annan function för insert då som returnerar räknarvärdet.

NöffMedlem sedan nov. 2003569 inlägg
#7

nja, SQL funktionen för insert ser likadan ut men heter INSERTSOMEDATA("INSERT.. .. .");
och jag använder insert väldigt ofta i koden, och så.
men finns det inte nåt sätt att ställa identity frågan i samma fråga som UPDATE?, vore otroligt tacksamt för då slipper jag ändra och greja.

LarsGMedlem sedan dec. 200012 465 inlägg
#8

Du vill altså göra

update t 
     set c = (select @@identity) 
where pk = 4711

Jag har ingen aning om det fungerar men jag skulle gissa att det inte gör det.

Genererad på 381 ms · cache AV · v20260730165559-full.f96bc7eb