Oluşturma ve değiştirme FOREIGN key Kısıtları

Bir tablo oluşturduğunuzda, tablo tanımını bir parçası olarak bir yabancı anahtar kısıtlaması oluşturabilirsiniz.Tablo zaten varsa, varolan bir birincil anahtar kısıtlamaları için yabancı anahtar kısıtlaması bağlı olduğu sağlanan yabancı anahtar kısıtlamasını veya benzersiz kısıtlama başka ekleyebileceğiniz veya aynı, tablo.Bir tablo, birden çok yabancı anahtar kısıtlamalarını içerebilir.

YABANCI anahtar kısıtlamasını 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ımlanan sütun uzunluğu değiştiremezsiniz.

Not

YABANCI anahtar kısıtlamasını değiştirmek için önce varolan FOREIGN key kısıtlaması silin ve yeni tanımı ile yeniden oluşturmanız gerekir.

Başka bir yabancı anahtar sütunları ve ilgili birincil anahtar veya benzersiz kısıtlama sütunlar arasında bilgi tutarlılığını gereksinimini kaldırmak için yabancı anahtar kısıtlamasını silmek tablo.

Bir tablo oluşturduğunuzda, yabancı anahtar kısıtlaması oluşturmak için

CREATE TABLE (Transact-SQL)

Bir yabancı anahtar kısıtlaması üzerinde varolan tablo oluşturmak için

ALTER TABLE (Transact-SQL)

Nasıl yapılır: (Visual veritabanı araçları) tablolar arasında ilişkiler oluşturma

YABANCI anahtar kısıtlamasını silmek için

ALTER TABLE (Transact-SQL)

YABANCI anahtar kısıtlaması ile nocheck kullanarak zorlama

YABANCI anahtar kısıtlamasını eklendiğinde varolan bir sütun veya sütunları için tablo, varsayılan olarak, Veritabanı Altyapısı inceler varolan verilerde sütunları olduğundan emin olduğunu, null dışındaki tüm değerleri var tablodaki sütunları başvurulan birincil anahtar veya benzersiz kısıtlama.Ancak, ile nocheck belirterek Veritabanı Altyapısı karşı yeni kısıtlamayı sütun içinde veri denetlemesini engelledi ve yapılan veri sütunu ne olursa olsun yeni kısıtlama eklemeİLE nocheck seçeneği, varolan verileri yeni FOREIGN key kısıtlaması ulaştığında veya bir iş kuralı kısıtlamanın yalnızca bu noktadan itibaren uygulanmasını gerektirir kullanışlıdır.

Çünkü bu denetimlerde atlar, varolan verileri denetlemeden bir kısıtlama eklediğinizde, ancak dikkatli olmanız Veritabanı Altyapısı veri bütünlüknü zorunlu tablo.

Bir yabancı anahtar kısıtlaması oluşturduğunuzda varolan verileri denetleme engellemek için

ALTER TABLE (Transact-SQL)

YABANCI anahtar kısıtlamalarını devre dışı bırakma

Varolan yabancı anahtar kısıtlamaları forspecific gibi işlemleri INSERT işlemleri update işlemleri ve çoğaltma işleme devre dışı bırakabilirsiniz.

  • Ekle ve güncelleştir deyimleri

    YABANCI anahtar kısıtlamasını devre dışı bırakma sağlar, veri tablo kısıtlamaları tarafından doğrulanan değiştirilecek.Yeni verinin kısıtlamayı ihlal veya kısıtlama yalnızca veritabanında veri uygulanacaksa Ekle ve güncelleştir deyimleri sırasında yabancı anahtar kısıtlamasını devre dışı.

    Not

    Üzerinde ilgili birincil anahtar tanımlanmış basamaklı eylemleri devre dışı yabancı anahtarları içeren satırları üzerinde gerçekleştirilmez.

  • Çoğaltma işlemleri

    Kısıtlamayı özeldir, çoğaltma sırasında yabancı anahtar kısıtlamasını devre dışı kaynak veritabanı.Bir tablo çoğaltıldığında, Tablo tanımı ve veri kopyalanarak dan kaynak veritabanı bir hedef veritabanı için.YABANCI anahtar kısıtlamaları özgü, kaynak veritabanı devre dışı bırakılır, ancak çoğaltma sırasında bunlar gereksiz yere yeni veriler hedef veritabanına girilen engel olabilir.Daha fazla bilgi için bkz: Denetleme sınırlamaları, kimlikleri ve tetikleyiciler not ile çoğaltma.

Ekle ve güncelleştir deyimleri için yabancı anahtar kısıtlamasını devre dışı bırakmak için

ALTER TABLE (Transact-SQL)

Nasıl yapılır: Yabancı anahtar sınırlamaları INSERT ve update deyimiyle (Visual veritabanı araçları) ile devre dışı bırakma

çoğaltma yabancı anahtar kısıtlamasını devre dışı bırakmak için

ALTER TABLE (Transact-SQL)

Nasıl yapılır: Yabancı anahtar sınırlamaları (Visual veritabanı araçları) çoğaltma için devre dışı bırakma

FOREIGN key kısıtlamaları hakkında bilgi edinmek için

sys.foreign_keys (Transact-sql)

YABANCI anahtar kısıtlamasını olun sütunları hakkında bilgi edinmek için

sys.foreign_key_columns (Transact-sql)

Ayrıca bkz.

Kavramlar