La chiave primaria nella tabella Person è presumibilmente un'identità. Questo è un campo intero a incremento automatico.
È necessario creare la chiave esterna nella tabella degli indirizzi di tipo int, non identity. Conterrà numeri interi che corrispondono ai record Persona, ma non si desidera che la chiave esterna si incrementi automaticamente. Per ogni record nella tabella figlio (indirizzo) imposterai un valore specifico per la chiave esterna indicando a quale record padre (Persona) appartiene.
Esempio:
INSERT person (firstname, lastname) VALUES ('John', 'Smith')
Questo inserirà il nuovo record di persona e il campo personid
verrà compilato automaticamente perché è un campo IDENTITÀ.
Ora per inserire un indirizzo di John Smith devi conoscere il suo personid
. Ad esempio:
-- Say, for example, personid of John Smith is 55
INSERT address (personid, street, city) VALUES (55, 'High Street', 'London')
Quindi nella person
tabella il personid viene generato automaticamente ma nel address
tabella si specifica il valore che corrisponde a una persona esistente. Questo è il punto centrale di una chiave esterna.
Senza ulteriori informazioni sul tuo schema è difficile indovinare il problema.