webForumDet fria alternativet
Logga in / Bli medlem

Sista posten med insert into

Databaser & SQL

7 svar · 306 visningar · startad av Nöff

Medlem sedan nov. 2003569 inlägg
Trådstart#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.

Medlem sedan dec. 200012 464 inlägg
#2

select @@identity

Medlem 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.

Medlem sedan dec. 200012 464 inlägg
#4

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

Medlem 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.

Medlem sedan dec. 200012 464 inlägg
#6

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

Medlem 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.

Medlem sedan dec. 200012 464 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.

256 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)