[sql-server-2008] SQL 기존 열에 외래 키 추가

SQL Server 2008에서 다음 SQL 명령을 사용하여 외래 키 제약 조건이있는 테이블을 업데이트하는 경우 :

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

UserIDEmployees테이블 에서 내 FK 열이됩니다 . UserIDActiveDirectories테이블 에서 참조하려고 합니다. 이 오류가 발생합니다.

외래 키 ‘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

그것은 열이라는 것을 할 수 IDEmployees테이블과 UserIDActiveDirectories테이블?

그러면 명령은 다음과 같아야합니다.

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);


답변