SQL将外键添加到现有列
如果我在SQL Server 2008中使用以下SQL命令来更新具有外键约束的表:
ALTER TABLE Employees ADD FOREIGN KEY (UserID) REFERENCES ActiveDirectories(id)   UserID是Employees表中的FK列。 我想在我的ActiveDirectories表中引用UserID 。 我收到这个错误: 
外键'UserID'在引用表'Employees'时引用无效列'UserID'。
错误表示您的Employees表中没有UserID列。 尝试先添加列,然后重新运行语句。
 ALTER TABLE Employees ADD CONSTRAINT FK_ActiveDirectories_UserID FOREIGN KEY (UserID) REFERENCES ActiveDirectories(id); 
也许你倒退了?
 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 
 是否该列在Employees表中被称为ID ,而在ActiveDirectories表中是UserID ? 
那么你的命令应该是:
 ALTER TABLE Employees ADD FOREIGN KEY (ID) <-- column in table "Employees" REFERENCES ActiveDirectories(UserID) <-- column in table "ActiveDirectories" 
MySQL / SQL Server / Oracle / MS访问:
 ALTER TABLE Orders ADD FOREIGN KEY (P_Id) REFERENCES Persons(P_Id) 
要允许FOREIGN KEY约束的命名,以及在多个列上定义FOREIGN KEY约束,请使用以下SQL语法:
MySQL / SQL Server / Oracle / MS访问:
 ALTER TABLE Orders ADD CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id) REFERENCES Persons(P_Id) 
外键创build正确的ActiveDirectories(id)的方式,我认为主要的错误是你没有提到ActiveDirectories表中的id的主键
 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