6
Merhaba, SQL Server 2008 kullanarak

, ben Ekipleri arasında sorun yaratan ilişkiler (TakımID PK) yaşıyorum FK2: AwayTeamID)MSSQL: İki yabancı anahtar için aynı tabloya ilişkiler oluşturulamıyor. , HomeTeamID: ve GameSchedule (PK: Oyun Kimliği, FK1: Ben bir beyzbol ligi için küçük bir veritabanı inşa ettik</p> <p>

Ben GameSchedule HomeTeamID, Ekiplerine AwayTeamID (TakımID) betwen ilişkileri oluşturmak istiyorum

Ben bir hata alıyorum bunu yapmaya zaman: (TakımID zaten Ekipleri Birincil Anahtar)

'Ekipler' tablosu başarıyla kaydedildi 'GameSchedule' tablosu - 'FK_GameSchedule_Teams' ilişkisi oluşturulamadı.
ALTER TABLE deyimi, "FK_GameSchedule_Teams" FOREIGN KEY kısıtlaması ile çakıştı. Çakışma "sll_2009", "dbo.Teams", "TeamID" sütununda yer aldı.

+0

Bu ilişkiler için Silme ve Güncelleme kurallarını belirttiniz mi? –

+7

Eklemeye çalıştığınız kısıtlamayı karşılamayan mevcut verileriniz var. –

+0

Daha fazla bilgi: Ben boş playpen veritabanı oluşturdum ve iki tablo ve tüm ilişkileri oluşturmak mümkün oldu, sorun gerçek veritabanında, mevcut kayıtları var ve bu ilişkiyi oluşturmama izin vermez. – Eric

cevap

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

Aynı hatayı verir: – Eric

+0

Msg 547, Düzey 16, Durum 0, Satır 1 ALTER TABLE deyimi, "fk1_gsch" FOREIGN KEY kısıtlaması ile çakıştı. Çakışma "sll_2009", "dbo.Teams", "TeamID" sütununda yer aldı. – Eric

+9

Problemi çözdüm, kutunun işaretini kaldırmak zorunda kaldım: Yaratılışta Varolan Verileri Kontrol Et: ('NO' olarak ayarla) ve işe yaradı! Teşekkürler. – Eric