Первичный ключ в таблице Person, по-видимому, является идентификатором.Это целочисленное поле с автоинкрементным увеличением.
Вам необходимо сделать внешний ключ в таблице адресов типа int, а не identity.Он будет содержать целые числа, которые соответствуют записям Person, но вы не хотите, чтобы внешний ключ автоматически увеличивался.Для каждой записи в дочерней таблице (адресе) вы установите конкретное значение для внешнего ключа, указывающее, к какой родительской записи (Person) она принадлежит.
Пример:
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
вы указываете значение, соответствующее существующему человеку.В этом весь смысл внешнего ключа.
Без дополнительной информации о вашей схеме трудно угадать проблему.