Avatar billede jacob_top Nybegynder
10. november 2004 - 14:48 Der er 4 kommentarer

Insert i flere tabeller uden pk.

Hej Alle!

Jeg har et problem med min database.

Jeg har to entiteter som begge er svage, dvs som ikke har nogen entydigt identificerende nøgle. For at lave en pk, tilføjer jeg derfor et id på den ene tabel, som er "auto-increment" dvs. den starter på 0 og tæller 1 op hver gang der indsættes i tabellen.

Tabel1: Forespoergsel
|id (int autoincrement)|startdato (datetime)| slutdato| + nogen flere kolonner (uinteressant)

Tabel2: Kunde
|forespoergselsId (int)| navn (varchar)|adresse (varchar)| osv.

Så vidt jeg har forstået kan man ikke indsætte i begge tabeller i et enkelt query, men bliver nød til at gøre det i flere.

Først gør min kode:

INSERT INTO FORESPOERGSEL values ('11/04/2004','11/04/2004') osv.

Dette går også godt, men når jeg så skal knytte kunden til forespoergslen, kommer jeg jo i problemer, da jeg ikke kende id'et på denne forespørgsel fordi denne bliver tildelt af dbms'en.

Hvordan løses dette? bliver jeg nød til at hente id'et fra forespørgslen inden jeg kan ligge en kunde ind i kundetabellen?
Eller findes der en anden løsning?
Problemet er lidt er der ikke er nogen entydig nøgle nogen af stederne, da systemet tillader 2 ens forespørgsler og 2 ens kunder.

Mvh
Jacob
Avatar billede arne_v Ekspert
10. november 2004 - 15:10 #1
Du indsætter bare @@IDENTITY i din sidste INSERT
Avatar billede arne_v Ekspert
10. november 2004 - 15:11 #2
@@IDENTITY indeholder den sidste auto incrment værdi der er genereret for
en connection
Avatar billede jacob_top Nybegynder
10. november 2004 - 16:55 #3
Har selv fundet en løsning ;-)
Avatar billede arne_v Ekspert
10. november 2004 - 18:17 #4
Uden brug af @@IDENTITY eller dens makker IDENTITY_SCOPE() ?
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