Първичният ключ в таблицата Person вероятно е самоличност. Това е автоматично нарастващо цяло числово поле.
Трябва да направите външния ключ в адресната таблица от тип int, а не identity. Той ще съдържа цели числа, които съответстват на записите за лица, но не искате външният ключ да се увеличава автоматично. За всеки запис в дъщерната таблица (адрес) ще зададете конкретна стойност за външния ключ, указваща към кой родителски запис (лице) принадлежи.
Пример:
INSERT person (firstname, lastname) VALUES ('John', 'Smith')
Това ще вмъкне новия запис на човек и полето personid
ще се попълни автоматично, защото това е поле IDENTITY.
Сега, за да вмъкнете адрес от Джон Смит, трябва да знаете неговия personid
. Например:
-- Say, for example, personid of John Smith is 55
INSERT address (personid, street, city) VALUES (55, 'High Street', 'London')
Така че в person
таблицата personid се генерира автоматично, но в address
таблица указвате стойността, която съответства на съществуващо лице. Това е целият смисъл на външния ключ.
Без повече информация за вашата схема е трудно да отгатнете проблема.