Microsoft SQL Server: Невозможно создать отношения для двух внешних ключей к одной и той же таблице? - PullRequest
6 голосов
/ 14 апреля 2011

Привет, используя SQL Server 2008,

Я создал небольшую базу данных для бейсбольной лиги. У меня проблемы с созданием отношений между командами (PK: TeamID) и GameSchedule (PK: GameID, 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".

1 Ответ

6 голосов
/ 14 апреля 2011
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)
;
...