SQL Добавить внешний ключ в существующий столбец

Если я использую следующую команду SQL в SQL Server 2008 для обновления таблицы с ограничением внешнего ключа:

ALTER TABLE Employees
ADD FOREIGN KEY (UserID)
REFERENCES ActiveDirectories(id)

UserID является моим столбцом FK в таблице Employees. Я пытаюсь ссылаться на UserID в моей таблице ActiveDirectories. Я получаю эту ошибку:

Внешний ключ "UserID" ссылается на недопустимый столбец "UserID" в ссылках таблица "Сотрудники".

Ответ 1

Ошибка указывает на отсутствие столбца UserID в таблице Employees. Попробуйте сначала добавить столбец, а затем снова запустите оператор.

ALTER TABLE Employees
ADD CONSTRAINT FK_ActiveDirectories_UserID FOREIGN KEY (UserID)
    REFERENCES ActiveDirectories(id);

Ответ 2

Возможно, вы получили свои столбцы назад?

ALTER TABLE Employees
ADD FOREIGN KEY (UserID)           <-- this needs to be a column of the Employees table
REFERENCES ActiveDirectories(id)   <-- this needs to be a column of the ActiveDirectories table

Может ли быть, что столбец называется ID в таблице Employees и UserID в таблице ActiveDirectories?

Тогда ваша команда должна быть:

ALTER TABLE Employees
ADD FOREIGN KEY (ID)                   <-- column in table "Employees"
REFERENCES ActiveDirectories(UserID)   <-- column in table "ActiveDirectories" 

Ответ 3

MySQL/SQL Server/Oracle/MS Access:

ALTER TABLE Orders
ADD FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)

Чтобы разрешить именовать ограничение FOREIGN KEY и определять ограничение FOREIGN KEY для нескольких столбцов, используйте следующий синтаксис SQL:

MySQL/SQL Server/Oracle/MS Access:

ALTER TABLE Orders
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)

Ответ 4

способ создания внешнего ключа корректен для ActiveDirectories (id), я думаю, главная ошибка заключается в том, что вы не указали первичный ключ для id в таблице ActiveDirectories

Ответ 5

ALTER TABLE Faculty 
WITH CHECK ADD  CONSTRAINT FKFacultyBook
FOREIGN KEY FacId
REFERENCES Book Book_Id

ALTER TABLE Faculty 
WITH CHECK ADD  CONSTRAINT FKFacultyStudent 
FOREIGN KEY FacId
REFERENCES Student StuId