2016-08-23 6 views
1
여기

테이블 내가 다른 테이블에 DesignationId를 참조 할 일이지만외래 키에서 비 기본 키 열을 참조 할 수 있습니까?

create table Employees 
(
    EmployeeID int identity(1,1) primary key, 
    EmployeeNumber int not null, 
    LocationID int not null, 
    EmployeeName varchar(20) not null, 
    DesignationID int not null, 
    CategoryID int not null, 
) 

두 번째 표는 세 ​​번째 행에 오류에게 당신이 만드는

create table Designation 
(
    DesignationID int primary key , 
    JobTitle varchar(20) not null, 

    CONSTRAINT fk_Designation_Employees 
     FOREIGN KEY (DesignationID) 
     REFERENCES Employees (DesignationID), 
) 
+3

테이블 # 2 **의 외래 키는 테이블 # 1에서 ** 기본 키 ** (및 * 완전한 * 기본 키) 또는 NOT NULL 열 (들)을 참조해야합니다. 고유 색인. 따라서 고유 한 열 (또는 열 집합)이있는 경우 해당 열 (들)에 고유 색인을 붙여 해당 열을 참조 할 수도 있습니다. –

답변

4

을 보여주고있다 ..한다는 것입니다 작동하지 않습니다 틀리게. 대신 다음 방법으로 시도해보십시오.

create table Designation 
(
    DesignationID int primary key , 
    JobTitle varchar(20) not null, 

) 

create table Employees 
(
    EmployeeID int identity(1,1) primary key, 
    EmployeeNumber int not null, 
    LocationID int not null, 
    EmployeeName varchar(20) not null, 
    DesignationID int not null, 
    CategoryID int not null, 


    CONSTRAINT fk_Employees_Designation 
     FOREIGN KEY (DesignationID) 
     REFERENCES Designation (DesignationID) 
) 

많은 직원이 자격증 명에 연결되어 있습니다. 일대 다 관계.