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.
7 svar · 304 visningar · startad av Nöff
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.
select @@identity
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.
Du får göra det med två separata anrop.
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.
Då kan du väl ha en annan function för insert då som returnerar räknarvärdet.
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.
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.