mo:d:fiMedlem sedan jan. 200475 inlägg Hej!
Sitter i MS Sql 2005 och har ett litet dilemma. I två tabeller har jag två kolumner
som jag vill ska agera som foreign key till samma primary key i en annan tabell.
Så vitt jag vet skall detta vara fullt möjligt men när jag satt upp båda
relationerna så får jag ett felmeddelande när jag skall spara tabellen.
Felmeddelandet som kommer säger följande:
The ALTER TABLE statement conflicted with the FOREIGN KEY constraint
"FK_relationships_users1". The conflict occurred in database "dedic3_3", table
"dbo.users", column 'UserID'.
Någon aning om vad som kan orsaka detta? Har provat med att sätta in update
till både no action och cascade som jag egentligen vill ha.
LaspMedlem sedan juli 200012 980 inlägg Är det samma typ på de sammansatta som den utpekade?
mo:d:fiMedlem sedan jan. 200475 inlägg Jodå det är uniqueidentifier som datatyp i alla kolumner...
LarsGMedlem sedan dec. 200012 464 inlägg Det beror nog på att du har data i tabell2 som inte finns i tabell1
mo:d:fiMedlem sedan jan. 200475 inlägg Tack.
Det verkar fungera, nästan iallafall. Hittade en borttagen användare i foreign
key tabellen som förmodligen strulade till allting.
Nu uppkom det ett annat problem bara. Jag vill ha ON DELETE CASCADE på båda
relationerna så att när jag tar bort en användare från primary key tabellen så
tas automatisk raderna bort i foreign key tabellen så att det ej behövs göras
manuellt. De måste ju ändå tas bort så att det inte skall finnas några
"föräldralösa" kolumner, men då får jag följande felmeddelande:
Introducing FOREIGN KEY constraint 'FK_relationships_users2' on table
'relationships' may cause cycles or multiple cascade paths. Specify ON DELETE
NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY
constraints.
Could not create constraint. See previous errors.
Går detta att lösa eller måste jag manuellt plocka bort posterna i foreign key
tabellen innan jag raderar i primary key tabellen?
LarsGMedlem sedan dec. 200012 464 inlägg Detta är en begränsning i SQL server. Det går att lösa om man skriver egna triggers.