SQL Query不起作用

R.V*_*tor 0 sql sql-server-2008

这是我第一次使用SQL Server,我创建了这些表:

create table Department
(
    D_Number int not null,
    D_Name varchar(20),
    D_MgrSSN int,
    D_MgrDate datetime,
    primary key(D_Number),
    unique(D_Name),
)

create table Empolyee
(
    E_SSN int not null,
    E_FName varchar(20),
    E_LName varchar(20),
    E_Sex varchar(6),
    E_BDate datetime,
    E_Salary decimal(10,2),
    E_Address varchar(50),
    E_Department varchar(20),
    E_SuperSSN int,
    primary key(E_SSN),
    foreign key(E_Department) references Department(D_Number),
)
Run Code Online (Sandbox Code Playgroud)

当我跑步时,我得到这个错误:

列"Department.D_Number"是不相同的数据类型为外键"FK_引用列"Empolyee.E_Department" Empolyee _E_Depa__0CBAE877".

Jon*_*onH 12

我个人认为SQL Server在错误消息方面做得非常出色,它告诉您确切需要修复的内容.

看看你定义的两个字段,一个是varchar(20)另一个是integer.

为了使外键与其主键匹配,它必须是相同的类型.要么改变既int或两者varchar.对您的商业模式有什么意义.


Sud*_*oti 5

您的:

E_Department is varchar
and
D_Number is integer 
//thats the problem
so make E_Department integer //same data type