Если я использую следующую команду SQL в SQL Server 2008 для обновления таблицы с ограничением внешнего ключа:
ALTER TABLE Employees
ADD FOREIGN KEY (UserID)
REFERENCES ActiveDirectories(id)
UserID
мой столбец FK в Employees
таблице. Я пытаюсь сослаться на UserID
в своей ActiveDirectories
таблице. Я получаю такую ошибку:
Внешний ключ «UserID» ссылается на недопустимый столбец «UserID» в таблице ссылок «Employees».
sql-server-2008
foreign-key-relationship
ExceptionLimeCat
источник
источник
Ответы:
Ошибка указывает на то, что в таблице «Сотрудники» нет столбца UserID. Попробуйте сначала добавить столбец, а затем повторно запустите инструкцию.
источник
There are no primary or candidate keys in the referenced table 'ActiveDirectories' that match the referencing column list in the foreign key 'FK__Employees__UserI__04E4BC85'.
Может у вас колонки задом наперед перевернули ??
Может быть, столбец вызывается
ID
вEmployees
таблице, аUserID
вActiveDirectories
таблице?Тогда ваша команда должна быть:
источник
MySQL / SQL Server / Oracle / MS Доступ:
Чтобы разрешить именование ограничения FOREIGN KEY и для определения ограничения FOREIGN KEY для нескольких столбцов, используйте следующий синтаксис SQL:
MySQL / SQL Server / Oracle / MS Доступ:
источник
источник
способ создания внешнего ключа правильный для ActiveDirectories (id), я думаю, что основная ошибка в том, что вы не упомянули первичный ключ для id в таблице ActiveDirectories
источник
В будущем.
источник