Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Chiave esterna a chiave non primaria

Se vuoi davvero creare una chiave esterna per una chiave non primaria, DEVE essere una colonna con un vincolo univoco su di essa.

Dai libri in linea:

Un vincolo FOREIGN KEY non deve essere collegato solo a un vincolo PRIMARYKEY in un'altra tabella; può anche essere definito per fare riferimento alle colonne di un vincolo UNIQUE in un'altra tabella.

Quindi nel tuo caso se crei AnotherID unico, sarà consentito. Se non puoi applicare un vincolo unico sei sfortunato, ma questo ha davvero senso se ci pensi.

Anche se, come è stato detto, se hai una chiave primaria perfettamente valida come chiave candidata, perché non usarla?