Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Fremdschlüssel zu Nicht-Primärschlüssel

Wenn Sie wirklich einen Fremdschlüssel zu einem Nicht-Primärschlüssel erstellen möchten, MUSS es eine Spalte sein, die eine Eindeutigkeitsbeschränkung hat.

Aus Books Online:

Eine FOREIGN KEY-Einschränkung muss nicht nur mit einer PRIMARYKEY-Einschränkung in einer anderen Tabelle verknüpft werden; es kann auch so definiert werden, dass es auf die Spalten einer UNIQUE-Einschränkung in einer anderen Tabelle verweist.

Also in Ihrem Fall, wenn Sie AnotherID machen einzigartig, es wird erlaubt sein. Wenn Sie keine Eindeutigkeitsbeschränkung anwenden können, haben Sie Pech, aber das macht wirklich Sinn, wenn Sie darüber nachdenken.

Obwohl, wie bereits erwähnt, wenn Sie einen vollkommen guten Primärschlüssel als Kandidatenschlüssel haben, warum nicht diesen verwenden?