Oluşturma ve yabancı anahtar kısıtlamaları değiştirme
Bir tablo oluşturduğunuzda, bir yabancı anahtar kısıtlaması Tablo tanımının bir parçası olarak oluşturabilirsiniz.Tablo zaten varsa, bir yabancı anahtar kısıtlaması, varolan bir birincil anahtar kısıtlamaları yabancı anahtar kısıtlaması bağlı sağlanan veya UNIQUE sınırlamasıyla başka bir programda ekleyebileceğiniz veya aynı, tablo.Bir tablo, birden çok yabancı anahtar kısıtlamaları içerebilir.
Bir yabancı anahtar kısıtlaması zaten varsa, değiştirin veya silin.Örneğin, yabancı anahtar kısıtlaması isteyebilirsiniz tablo diğer sütunlara başvurmak için.Ancak, bir yabancı anahtar kısıtlaması ile tanımlanmış bir sütun uzunluğunu değiştiremezsiniz.
Not
yabancı anahtar kısıtlamayı değiştirmek için , önce varolan yabancı anahtar kısıtlaması silin ve yeni tanımı ile yeniden oluşturmanız gerekir.
Yabancı anahtar sütunları ve ilgili birincil anahtar veya UNIQUE sınırlamasıyla, sütunlar arasında bilgi tutarlılığını gereksinimini başka bir programda kaldırmak için bir FOREIGN KEY kısıtlaması silme tablo.
Bir tablo oluşturduğunuzda, bir yabancı anahtar kısıtlaması oluşturmak için
Varolan bir üzerinde yabancı anahtar bir kısıtlama oluşturmak için tablo
Nasıl Yapılır: (Visual veritabanı araçları) tablolar arasında ilişkiler oluşturma
yabancı anahtar kısıtlamayı silmek için
NOCHECK kullanarak bir yabancı anahtar kısıtlaması zorlama
Varsayılan olarak, bir yabancı anahtar kısıtlaması varolan bir sütun veya tablonun sütun eklendiğinde, Database Engine sütunlardaki NULL, dışındaki tüm değerleri, başvurulan birincil anahtar veya UNIQUE sınırlaması sütunlarındaki bulunduğundan emin olun varolan verileri inceler. Ancak, WITH NOCHECK, belirterek Database Engine Yeni bir kısıtlama karşı sütundaki verileri denetlemesini engelledi ve sütunda verilerin ne olursa olsun yeni bir kısıtlama eklemek için yapılan. WITH NOCHECK seçeneği, varolan verileri yeni yabancı anahtar kısıtlaması uyduğunda ya da bir iş kuralı kısıtlamanın yalnızca bu noktadan itibaren yürütülebilmesi için gerektiğinde yararlıdır.
Çünkü bu denetimleri atlar, varolan verileri denetlemeden bir kısıtlama eklediğinizde, Bununla birlikte, dikkatli olmalısınız Database Engine Tablo veri bütünlüğünü zorlar.
Bir yabancı anahtar kısıtlaması oluşturduğunuzda varolan veriyi denetleme engellemek için
yabancı anahtar kısıtlamaları'nı devre dışı bırakma
Varolan yabancı anahtar kısıtlamaları forspecific gibi işlemleri INSERT işlemi UPDATE işlemleri ve çoğaltma işlemi devre dışı bırakabilirsiniz.
Ekle ve GÜNCELLEŞTIR deyimleri
yabancı anahtar kısıtlamayı devre dışı bırakma, verilerde sağlayan tablo kısıtlamaları tarafından doğrulanan olmadan değiştirilecek.yabancı anahtar kısıtlama Ekle ve GÜNCELLEŞTIR deyimleri sırasında yeni verinin kısıtlamayı ihlal veya kısıtlama yalnızca veritabanında veri uygulanacaksa devre dışı bırakın.
Not
Devre dışı bırakılan yabancı anahtarlar içeren satırda basamaklı bir ilgili birincil anahtar için tanımlanan herhangi bir eylem gerçekleştirilmez.
Çoğaltma işlemi
Bir yabancı anahtar kısıtlaması kısıtlamayı özeldir, çoğaltma sırasında devre dışı kaynak veritabanı.Bir tablo çoğaltıldığında, Tablo tanımı ve veri kopyalanır gelen kaynak veritabanı hedef veritabanına.yabancı anahtar kısıtlamaları kaynak veritabanına özgü, ancak çoğaltma işlemi sırasında devre dışı bırakılır, gereksiz yere yeni veriler hedef veritabanında girdiğiniz engelleyebilir.Daha fazla bilgi için bkz:Sınırlamaları, kimlik ve Tetikleyicileri NOT ile denetlemek IÇIN çoğaltma.
yabancı anahtar kısıtlama Ekle ve GÜNCELLEŞTIR deyimleri için devre dışı bırakmak için
çoğaltma yabancı anahtar kısıtlamasını devre dışı bırakmak için
yabancı anahtar kısıtlamaları hakkında bilgi almak için
sys.foreign_keys (Transact-SQL)
Bir yabancı anahtar kısıtlaması oluşturan sütunları hakkında bilgi almak için