2016-12-08 18 views
0
use CollegeDB 
create table [Majors] 
(
    Major_name nvarchar(20) not null, 
    Major_head_of_major nvarchar(20) not null, 
    primary key (Major_name) 
) 

use CollegeDB 
create table [Courses] 
(
    Course_code nvarchar(10) not null, 
    Course_name nvarchar(20) not null, 
    primary key (Course_code), 
    foreign key (Major_name) references Majors 
) 

そして、私はこのエラーを取得しています:外部キーのSQL Server 2016(MSG 1769)

Msg 1769, Level 16, State 1, Line 41
Foreign key 'Major_name' references invalid column 'Major_name' in referencing table 'Courses'.

Msg 1750, Level 16, State 0, Line 41
Could not create constraint or index. See previous errors.

私はそれを解決できますか? ありがとうございました!

+1

メジャー名はテーブルコースに存在する必要があります。 –

+0

テーブルを参照しているだけで、列名は参照していないようです。 –

+0

誤った構文。ちょうどそれgoogle、男。 – dfundako

答えて

1

2番目の機能を変更して、外部キーとして設定する2番目の表に列を作成する必要があります。

これを試してください。

create table Courses (
    Course_code nvarchar(10) not null, 
    Course_name nvarchar(20) not null, 
    Major_name nvarchar(20) not null, 
    primary key (Course_code), 
    foreign key (Major_name) references Majors(Major_name) 
) 
+0

ありがとうございました! –

+1

正しいとマークしてください! :) – Conor

0

メジャー名でメジャー名を持つコースのメジャー名を参照する場合は、メジャー名列をコーステーブルに追加してから、外部キー制約を作成する必要があります。フォローしてください。

create table Courses 
(
    Course_code nvarchar(10) not null, 
    Course_name nvarchar(20) not null, 
    Major_name nvarchar(20) 
    primary key (Course_code), 
    constraint fk_Courses_Major foreign key(Major_Name) references Majors(Major_name) 
) 
関連する問題