Avatar billede fennec Nybegynder
21. december 2007 - 11:10 Der er 7 kommentarer og
1 løsning

insæt ID'et i en anden kolonne på samme tabel

Dette lyder måske dumt, men jeg har brug for at få ID'et fra en indsættelse og indsætte i en anden kolonne på den samme tabel.

Jeg kan sagtens klare det over 2 gange, men ville høre om det kan lade sig gøre på en gang.

Det jeg søger er noget ala:
INSERT INTO aaTest(mitID, Navn) VALUES (@@IDENTITY, 'Fennec')

Så ID'et fra indsættelsen kommer ind på mitID. Resusltatet bliver altså:
ID | mitID | Navn
1 | 1 | 'Fennec'
2 | 2 | 'Anders'
Avatar billede the_party_dog Nybegynder
21. december 2007 - 11:48 #1
Så skal du over i noget trigger after, det ville kunne klare det på "en gang".
Avatar billede fennec Nybegynder
21. december 2007 - 12:05 #2
Det er desværre ikke en mulighed :(

Det skal bruges i et program hvor der er et projektnummer. Dette nummer kan komme fra mange steder afhængig af an instilling de har valgt. Det kan f.eks være manuelt indtastet, ud fra en formel som henter år/måned/dag plus et løbende nummer, eller bare et løbende nummer.

Nu ønsker man så også en mulighed hvor nummeret skal være det samme som database ID'et.

Jeg frygtede at ID'et først kunne trækkes når data var indsat, hvorfor det ikke kan gøres på en nem måde. Jeg har gjort det over flere linjer.

Smid et svar.
Avatar billede jokkejensen Novice
21. december 2007 - 12:55 #3
Kan det ikke laves i en stored procedure ?
Avatar billede the_party_dog Nybegynder
21. december 2007 - 13:03 #4
Det kan nemt gøres i en SP, men vi ved jo ikke hvor mange rækker eller noget der drejer sig om. Hvis vi snakker mange bruger er det måske ikke en hensigtmæssig måde at gøre det på.

Men hvis vi hører lidt mere, kan vi jo nok afgøre om SP kan bruges :o)
Avatar billede fennec Nybegynder
21. december 2007 - 14:00 #5
Det kan godt laves i en SP, men det er overkill i dette tilfælde.

Men som jeg skrev så har jeg løst det i programmet i stedet (3 linjer kode). Det var kun hvis der var en pendant til @@identity, så jeg var fri for de linjer. Det er jo ikke så pænt :o)

Men smid et svar fest hund

*<.o) <-- One Eyed Christmas Jack
Avatar billede arne_v Ekspert
21. december 2007 - 15:15 #6
alle de gode muligheder er naevnt - men skal vi have de mindre gode med saa ....

visse database API'er tillader multiple SQL statement i en enkelt execute, saa
du kunne jo proeve:

conn.execute("INSERT INTO aaTest(Navn) VALUES ('Fennec'); UPDATE aaTest SET mitID=@@IDENTITY;")
Avatar billede fennec Nybegynder
07. februar 2008 - 10:23 #7
Mangler stadig et svar...
Avatar billede the_party_dog Nybegynder
07. februar 2008 - 10:40 #8
Det kommer nu :o)
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
Computerworld tilbyder specialiserede kurser i database-management

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