Den primära nyckeln i tabellen Person är förmodligen en identitet. Detta är ett automatiskt ökande heltalsfält.
Du måste göra den främmande nyckeln i adresstabellen av typen int, inte identitet. Den kommer att innehålla heltal som motsvarar personposter, men du vill inte att den främmande nyckeln ska öka automatiskt. För varje post i den underordnade tabellen (adressen) kommer du att ange ett specifikt värde för den främmande nyckeln som anger vilken överordnad post (Person) den tillhör.
Exempel:
INSERT person (firstname, lastname) VALUES ('John', 'Smith')
Detta kommer att infoga den nya personposten och fältet personid
kommer att fyllas i automatiskt eftersom det är ett IDENTITY-fält.
För att nu infoga en adress från John Smith måste du känna till hans personid
. Till exempel:
-- Say, for example, personid of John Smith is 55
INSERT address (personid, street, city) VALUES (55, 'High Street', 'London')
Så i person
tabell genereras personid automatiskt men i address
tabell anger du värdet som matchar en befintlig person. Det är hela poängen med en främmande nyckel.
Utan mer information om ditt schema är det svårt att gissa problemet.