22
oluşturmak için başarısız olur.

2 tablo arasında bir yabancı anahtar istiyorum, bu yüzden her zaman yaptığım gibi deneyin. Şimdi sahip olduğum konu, yaratmayı başaramıyor olması ve onun görünüşüyle ​​yaratılmasının başarısız olması, çünkü zaten bir anahtar var, ama yok.Yabancı Anahtar

- Unable to create relationship 
'FK_tbl_Paramed_RegistratieBehandelingen_Users'. 
    The ALTER TABLE statement conflicted with the 
    FOREIGN KEY constraint "FK_tbl_Paramed_RegistratieBehandelingen_Users". 
    The conflict occurred in database "Nestor_Server", 
    table "dbo.Users", column 'UserID'. 

Ive aynı türü varsa o oluşturmaz neden onlar (bigint) yapmak o kadar alamadım işaretli o

cevap

48

konuda emin değil RegistratieBehandelingen kayıtları (var olması mümkündür Kullanıcı Tablosunda mevcut olmayan tablo adı).

select * from RegistratieBehandelingen a where UserID IS NULL or 
not exists (select 1 from Users b where b.UserID= a.UserID) 
+1

Evet, null bir değer kaymış görünüyordu ağlar bu yüzden neden başarısız devam ediyor. Teşekkürler –

+0

Tam olarak .. Sadece aynı sorunu yaşadım. Durumun böyle olup olmadığını test etmek için, "NO CHECK" seçeneğini kullanarak yabancı anahtarı oluşturmayı deneyin. Bu, anahtarı oluşturur, ancak mevcut veriler oluşturmaya çalıştığınız tam yabancı anahtar kuralıyla eşleşmezse düşmez. –

11

Bu, eşleşen bir üst kimliği olmayan alt verileriniz olduğu anlamına gelir.

çalıştırın herhangi bir sonuç almak olmadığını görmek için aşağıdaki: o zaman herhangi bir sonuç almak o kaydeden göstermelidir ise (uygun değişen tablo ve sütun adlarını)

SELECT * 
FROM tbl_Paramed_RegistratieBehandelingen r 
LEFT JOIN Users u on r.UserID = u.UserID 
WHERE u.UserID IS NULL 

userids içerdiğini don Kullanıcılarla eşleşmiyor.

0

Yukarıdaki sorgudan sonra, varolmayan UserId tablosunu tbl_Paramed_RegistratieBehandelingen tablosundan silmek veya tablo Kullanıcıları içine eklemek isteyebilirsiniz.