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

相關問題