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