SQL Server 2008에서 다음 SQL 명령을 사용하여 외래 키 제약 조건이있는 테이블을 업데이트하는 경우 :
ALTER TABLE Employees
ADD FOREIGN KEY (UserID)
REFERENCES ActiveDirectories(id)
UserID
Employees
테이블 에서 내 FK 열이됩니다 . UserID
내 ActiveDirectories
테이블 에서 참조하려고 합니다. 이 오류가 발생합니다.
외래 키 ‘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
그것은 열이라는 것을 할 수 ID
에 Employees
테이블과 UserID
에 ActiveDirectories
테이블?
그러면 명령은 다음과 같아야합니다.
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)
답변
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
답변
ActiveDirectories (id)에 대한 외래 키 생성 방법이 정확합니다. 주된 실수는 ActiveDirectories 테이블에서 id에 대한 기본 키를 언급하지 않았다는 것입니다.
답변
미래에.
ALTER TABLE Employees
ADD UserID int;
ALTER TABLE Employees
ADD CONSTRAINT FK_ActiveDirectories_UserID FOREIGN KEY (UserID)
REFERENCES ActiveDirectories(id);