6

使用SQL Server 2008嗨,MSSQL:无法为两个外键创建关系到同一个表?

我已经建立了一个小型数据库的棒球联赛,我有(PK:TeamID)球队之间的问题创建关系和GameSchedule(PK:游戏ID,FK1:HomeTeamID, FK2:AwayTeamID)

我想创建悫的GameSchedule HomeTeamID,AwayTeamID到小组(TeamID)关系

每当我尝试这样做,我得到一个错误:(该TeamID已经在队的主键)

'团队'表成功保存 'GameSchedule'表 - 无法创建关系'FK_GameSchedule_Teams'。
ALTER TABLE语句与FOREIGN KEY约束“FK_GameSchedule_Teams”冲突。冲突发生在数据库“sll_2009”,表“dbo.Teams”,列“TeamID”中。

+0

您是否为这些关系指定了删除和更新规则? – 2011-04-14 12:02:00

+7

您可能已经有不符合您要添加的约束条件的现有数据。 – 2011-04-14 12:02:41

+0

更多信息:我创建了一个空的婴儿围栏数据库,并且我能够创建两个表和所有关系,问题是在真实数据库中,我有现有记录,并且它不会让我创建关系。 – Eric 2011-04-14 12:32:04

回答

6
create table GameSchedule (
     GameID  integer not null 
    , HomeTeamID integer not null 
    , AwayTeamID integer not null 
); 

alter table GameSchedule 
    add constraint pk_gsch primary key (GameID) 
, add constraint fk1_gsch foreign key (HomeTeamID) references Teams (TeamID) 
, add constraint fk2_gsch foreign key (AwayTeamID) references Teams (TeamID) 
; 
+0

给出相同的错误: – Eric 2011-04-14 12:19:01

+0

消息547,级别16,状态0,行1 ALTER TABLE语句与FOREIGN KEY约束“fk1_gsch”冲突。冲突发生在数据库“sll_2009”,表“dbo.Teams”,列“TeamID”中。 – Eric 2011-04-14 12:19:17

+9

那么,我解决了这个问题,我不得不取消选中该框:检查创建的现有数据:(设置为“否”),它的工作!谢谢。 – Eric 2011-04-14 12:41:44

相关问题