SORU
12 Mayıs 2009, Salı


Yabancı anahtar kısıtlaması devir veya birden fazla ardarda yolları neden olabilir?

Benim tablolar için kısıtlamalar eklemeye çalıştığımda bir sorun var. Hata alıyorum:

YABANCI ANAHTAR kısıtlaması 'FK74988DB24B3C886' masa 'Çalışan' devir veya birden fazla ardarda yolları neden olabilir. tanıtımı SİLMEK için bir EYLEM GÜNCELLEME ÜZERİNDE HİÇBİR işlem ya belirtin ya da başka bir YABANCI ANAHTAR kısıtlamalarını değiştirin.

Benim kısıtlaması Code Tablo employee bir tablo arasında. Code Tablo 3*, *, FriendlyName, Name6* *ve Value içerir. employee kodu her türü için bir referans olabilir diye referans kodu alanları vardır.

Alanlar için başvurulan kod silinirse null olarak ayarlanması gerekiyor.

Ben bunu nasıl herhangi bir fikir?

CEVAP
12 Mayıs 2009, Salı


SQL Server mu basit sayma ardarda yollar ve yerine denemek ister herhangi bir döngü var aslında yok, varsayar kötü ve reddediyor oluşturmak için uygulanmaz (CASCADE): ve gerekir hala oluşturmak kısıtlamalar olmadan uygulanmaz. Tasarımınızı değiştirebilirsiniz. (veya öyle şeylerden taviz verecek) sonra ise son çare olarak tetikler kullanarak düşünmelisiniz.

FWIW cascade yolları çözmek karmaşık bir sorun. Diğer SQL ürünleri kolayca görmezden sorunu ve oluşturmak döngüleri, bu durumda olacak bir yarış gören üzerine değer son, muhtemelen cehalet tasarımcısı (örneğin ACE/Jet geliyor bu). SQL ürünleri basit davaları çözmeye çalışacaktır biraz anlıyorum. Aslında, SQL Server oynar bunu birden fazla yolu geri çevirerek güvenli ultra denemeye bile yok ve en azından bu şekilde anlatıyor kalır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jason Rosolowski

    Jason Rosolo

    25 EKİM 2006
  • theKGB65

    theKGB65

    24 Aralık 2007
  • YouplusmeVEVO

    YouplusmeVEV

    4 EYLÜL 2014