2016-08-23 5 views
1

Hier Tisch, den ich will DesignationId auf andere Tabelle verweisen, aber es funktioniert nichtKann eine Nicht-Primärschlüsselspalte von einem Fremdschlüssel referenziert werden?

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

zweite Tabelle, dass auf der dritten Reihe .. ist es Fehler

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

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

Ein Fremdschlüssel in Tabelle 2 ** ** muss entweder den ** Primärschlüssel ** (und nichts als den * vollständigen * Primärschlüssel) aus Tabelle # 1 oder eine oder mehrere NOT NULL-Spalten von a referenzieren eindeutiger Index Wenn Sie also eine Spalte (oder einen Satz von Spalten) haben, die eindeutig ist, dann können Sie einen eindeutigen Index für diese Spalte (n) erstellen und auf diese Spalte verweisen. –

Antwort

4

du schaffen zeigt falsch. Versuchen Sie es so:

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

Viele Mitarbeiter mit einer Bezeichnung verknüpft. Eins-zu-Viele-Beziehung.

Verwandte Themen