Avatar billede casperhojstrup Nybegynder
31. maj 2005 - 13:31 Der er 12 kommentarer og
1 løsning

Træk auto id ved INSERT

Når jeg opdaterer min database med kommandoen INSERT får posterne automatisk et løbende nummer.

Hvordan kan jeg nemmest trække dette nummer efter at have INSERT´et noget i databasen ?
Avatar billede ksoren Nybegynder
31. maj 2005 - 13:33 #1
Prøv

Set rs = Conn.Execute("select @@identity")
id = rs(0)
Avatar billede busschou Praktikant
31. maj 2005 - 13:35 #2
Avatar billede busschou Praktikant
31. maj 2005 - 13:37 #3
hov samme løsnings forslag næsten ;o)
Avatar billede thesurfer Nybegynder
31. maj 2005 - 13:56 #4
Eller kan man bruge: select top 1 from TabelNavn order by id desc

Den nyest er post, har jo den højeste værdi..

Mener at det i MSSQL hedder: select * from TabelNavn limit 1 order by id desc

Men identity er noget kortere/smartere :-)
Avatar billede busschou Praktikant
31. maj 2005 - 15:19 #5
thesurfer >> det er delvist korrekt ;o) Ja den nyeste id vil være den "øverste"/"største" ... men men... Hvad nu hvis du næsten simultant kører to Insert? Inden du så når at selecte den største id på den første - ja så er der blevet indsat en mere, som så nu er den største
Så vidt jeg har kunne forstå hos msdn så virker @@identity sådan at hvis den kaldes direkte i røven på en insert så garanterer den id´et på det netop indsatte element
Avatar billede thesurfer Nybegynder
31. maj 2005 - 15:39 #6
Du kan ikke afvikle 2 SQL strenge på een gang :-)

Dvs:
insert...
hent nyeste id (pga desc)
insert...

:-)

Man kunne muligvis brug: select top 1 as myid from TabelNavn order by id desc
og så henvise til myid..

/theSurfer
Avatar billede ksoren Nybegynder
31. maj 2005 - 15:41 #7
thesurfer, du forventer der kun sidder een bruger på serverern? :)
Avatar billede thesurfer Nybegynder
31. maj 2005 - 15:46 #8
Yeps! :-)

/theSurfer
Avatar billede busschou Praktikant
31. maj 2005 - 16:23 #9
godt så thesurfer
Så det senario hvor du har en hjemmeside og to eller flere bruger opretter sig simultant kan _ikke_ forekomme? .. hmmm har jeg svært ved at tro
Jeg ved ikke hvordan access virker, men andre databaser søger selv for at sætte i kø
Men det forhindrer jo ikke at der kommer en
bruger1 - Insert
bruger2 - Insert
bruger1 - få fat i id
bruger3 - Insert
bruger2 - få fat i id
bruger3 - få fat i id
osv osv
Avatar billede thesurfer Nybegynder
31. maj 2005 - 16:26 #10
Jeg blokerer for alle de andre brugere, så der kun er 1 bruger ad gangen ;-)
(ja, det var en joke)

..kan godt se pointen.. :-)

/theSurfer
Avatar billede busschou Praktikant
31. maj 2005 - 16:30 #11
hehe tjaa...man ved jo aldrig
I princippet kunne man vel spærre database adgangen til een bruger ad gangen gennem global.asa
Avatar billede casperhojstrup Nybegynder
31. maj 2005 - 16:44 #12
Ksoren - send et svar

...tak til alle for hjælpen
Avatar billede casperhojstrup Nybegynder
27. februar 2007 - 08:11 #13
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester