Se eu estiver usando o seguinte comando SQL no SQL Server 2008 para atualizar uma tabela com uma restrição de chave estrangeira:
ALTER TABLE Employees
ADD FOREIGN KEY (UserID)
REFERENCES ActiveDirectories(id)
UserID
sendo minha coluna FK na Employees
tabela. Estou tentando fazer referência a UserID
em minha ActiveDirectories
tabela. Recebo este erro:
A chave estrangeira 'ID do usuário' faz referência à coluna inválida 'ID do usuário' na tabela de referência 'Funcionários'.
sql-server-2008
foreign-key-relationship
ExceptionLimeCat
fonte
fonte
Respostas:
Erro indica que não há coluna UserID em sua tabela Funcionários. Tente adicionar a coluna primeiro e, em seguida, execute novamente a instrução.
fonte
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'.
Talvez você tenha invertido suas colunas ??
Será que a coluna é chamada
ID
naEmployees
tabela eUserID
naActiveDirectories
tabela?Então, seu comando deve ser:
fonte
Acesso MySQL / SQL Server / Oracle / MS:
Para permitir a nomenclatura de uma restrição FOREIGN KEY e para definir uma restrição FOREIGN KEY em várias colunas, use a seguinte sintaxe SQL:
Acesso MySQL / SQL Server / Oracle / MS:
fonte
fonte
forma de criação de chave estrangeira correta para ActiveDirectories (id), acho que o principal erro é que você não mencionou a chave primária para id na tabela ActiveDirectories
fonte
No futuro.
fonte