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

Tabelle ändern und UNIQUE-Schlüssel hinzufügen führt zu einem Fehler

Siehe die Dokumentation zum Hinzufügen einer Tabelleneinschränkung.

ALTER TABLE Animal ADD CONSTRAINT UQ_Animal_AnimalTypeId UNIQUE (AnimalType_id)

Es hört sich so an, als wäre AnimalType_id ein Fremdschlüssel, also wollte ich nur überprüfen, ob Sie verstanden haben, dass Sie die Beziehung eins-eins machen, indem Sie diese Spalte eindeutig machen - Sie können nur ein Tier jeder Art haben.

Da Sie beim Hinzufügen der eindeutigen Einschränkung einen Fehler erhalten, schlage ich vor, dass Sie tatsächlich einen Fremdschlüssel anstelle einer eindeutigen Einschränkung wünschen:

ALTER TABLE Animal
    ADD CONSTRAINT FK_Animal_AnimalType
    FOREIGN KEY
    (
        AnimalType_id
    )
    REFERENCES AnimalType
    (
        id
    )

Ich musste den Namen der AnimalType-Tabelle und den Namen der Primärschlüsselspalte erraten - bitte ändern Sie diese, wenn sie falsch sind.