外键SQL Server 2016(MSG 1769) [英] Foreign keys SQL Server 2016 (msg 1769)

查看:53
本文介绍了外键SQL Server 2016(MSG 1769)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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
)

我收到此错误:

1769级16州立1行41消息
外键"Major_name"引用表"Courses"中的无效列"Major_name".

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

信息1750,级别16,状态0,第41行
无法创建约束或索引.请参阅先前的错误.

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

我该如何解决?谢谢!

推荐答案

您需要更改第二个函数,以确保在第二个表中创建要设置为外键的列.

You need to change the second function to make sure you create the column in the second table that you want to set as your foreign key.

尝试一下.

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

这篇关于外键SQL Server 2016(MSG 1769)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆