Sql server 我能';不要在列上放置外键

Sql server 我能';不要在列上放置外键,sql-server,database,tsql,Sql Server,Database,Tsql,我创建了以下表格: create table Angajati ( ID_Angajat int identity(1,1) primary key not null, Nume varchar(15) not null, Prenume varchar(30) not null, FunctieAngajat varchar(100) not null, NrTelefon int not null ); create table PersonalL

我创建了以下表格:

create table Angajati 
(
    ID_Angajat int identity(1,1) primary key not null,
    Nume varchar(15) not null,
    Prenume varchar(30) not null,
    FunctieAngajat varchar(100) not null,
    NrTelefon int not null
);

create table PersonalLocatii
(
    ID_PersonalLocatii int identity(1,1) primary key not null,
    CodLocatie int not null,
    foreign key (CodLocatie) references Locatii(CodLocatie),
    AdresaLocatie nvarchar(max) not null,
    FunctieAngajat varchar(100) not null,
    ID_Angajat int not null
);
go
我想在
PersonalLocatii
表中的
ID\u Angajat
列上放置一个外键,我使用以下语法:

alter table PersonalLocatii
    add constraint FK_ID_Angajat
        foreign key (ID_Angajat) references Angajati(ID_Angajat);
修改列后,它不允许我在第二个表中输入信息。第一个表和第二个表之间的关系是一对多

这就是错误:

ALTER TABLE语句与外键约束“FK_ID_Angajat”冲突。冲突发生在数据库“Vegas”、表“dbo.Angajati”、列“ID_Angajat”中


请帮帮我

您需要更正数据

此查询将帮助您找到“有问题”的行

或者是一个独特的列表

Select Distinct Errant__ID_Angajat
from
(    Select ID_Angajat as Errant__ID_Angajat from 
    PersonalLocatii child
    where not exists (select ID_Angajat from Angajati innerParent where innerParent.ID_Angajat = child.ID_Angajat)
) derived1

这意味着您的
ID\u Angajat
列中已有与
Angajat
表中的记录不匹配的值。您必须首先更正数据。听起来该表包含的某些数据确实违反了您试图添加的约束,即
ID\u Angajat
中的值出现在第二个表中,但不是第一个表中。
Select Distinct Errant__ID_Angajat
from
(    Select ID_Angajat as Errant__ID_Angajat from 
    PersonalLocatii child
    where not exists (select ID_Angajat from Angajati innerParent where innerParent.ID_Angajat = child.ID_Angajat)
) derived1