Jag har en Tabell med vanlig information, texom en person.
Den personen ska ha ett antal leksaker så då har jag lagt upp två tabeller till en som håller nyckeln till personen samt nyckeln till leksakernas tabell. Sist så har jag en tabell då som håller informationen om leksakerna.
Är detta rätt uplägg om man vill ha en struktur som gör att en post i huvudtabellen kan ha flera tillhörande poster i en annan.
Frågan är ju då, hur man skriver för att göra en inster i dessa tabeller så att all information.
Inser into person (namn) value (kalle)
Insert into leksaker (id,typ) value (@@identity, brandbil)
men det blir ju inte rätt för den tabellen mellan dessa måst ju få både @@identity från person och leksaker...
hmm tips, vad ska jag söka på , eller ett exempel.
LarsGMedlem sedan dec. 200012 464 inlägg Upplägget är riktigt
Om du bara har en leksak så kand du göra
Inser into person (namn) values ('kalle')
Insert into leksaker (id,typ) select @@identity, 'brandbil'
annars så får du göra
select @@identity
och lagra det i en lokal variabel.
Tack.. jag har prövat nu.. med lite blanda problem och lösningar..
vad heter det jag håller på med så jag kan söka lite vidare om ämnet och hur man kan tänka.
Ngn som har en lite fin procedur eller sql sats som den kan bjuda på så jag ser om jag har lagt upp det rätt..
Blir det fler exekveringar av sql strängen eller kan man få ihop den på en och samma?
Jonas
Det går inte att skriva??
INSERT INTO person (namn) VALUES ('arne')
SELECT @@Identity AS id_namn
INSERT INTO leksak(type) VALUES ('pistol')
SELECT @@Identity AS id_leksak
INSERT INTO person_leksak (idx_person, idx_leksak) VALUES (id_namn, id_leksak)
Fast jag vill ju lägga in fler leksaker per person på en ggn..
hmm
LarsGMedlem sedan dec. 200012 464 inlägg declare @pid int, @lid int
INSERT INTO person (namn) VALUES ('arne')
SELECT @pid = @@Identity
INSERT INTO leksak(type) VALUES ('pistol')
SELECT @lid = @@Identity
INSERT INTO person_leksak (idx_person, idx_leksak) VALUES (@pid,@lid)
Här finns allt man behöver veta om T-sql.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_ca-co_5t9v.asp
jag har lagt ditt kodexempel i en store procedure, men den klagar när jag kör den i Q A. Den säger att
INSERT statement conflicted with COLUMN FOREIGN KEY constraint
ngn som vet?
LarsGMedlem sedan dec. 200012 464 inlägg Hur är tabellerna definerade ?
Vilka foreign keys finns det?
Vilken tabell får du fel på?
Om du har foreign keys så innebär det att du inte kan lagra data i en kolumn om inte motsvarande värde finns i motsvarande kolumn i den refererade tabellens primary key/unique.
ok.
jag har person då med nyckel idx_person
och leksak med idx_leksak
mellan dessa då är det person_leksak med motsvarande namn som foreign keys. idx_person och idx_leksak.
Ska jag inte ha så eller? Värdet borde ju finnas i person för jag lägger ju till person och leksak och därefter deras nyckeltal som värden i person_leksak
Nu var ju person och leksak namn som jag hittade på för att det inte skulle bli så konstigt.. men nu ser det ju bara oseriöst ut istället ;)
får felet i person och column idx_person.
Men jag kollar i databasen så har namnet och leksaken lagts till det är koppling de emellan som inte har fastnat.
tog bort relationerna och nu funkar det fint.. skiter i den!
Tack så mycket LarsG..