Aracılığıyla paylaş


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

tablo (Transact-SQL) CREATE

Varolan bir üzerinde yabancı anahtar bir kısıtlama oluşturmak için tablo

ALTER tablo (Transact-SQL)

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

yabancı anahtar kısıtlamayı silmek için

ALTER tablo (Transact-SQL)

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

ALTER tablo (Transact-SQL)

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

ALTER tablo (Transact-SQL)

Nasıl Yapılır: INSERT ve UPDATE deyimiyle (Visual veritabanı araçları), yabancı anahtar kısıtlamalarını devre dışı bırakma

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

ALTER tablo (Transact-SQL)

Nasıl Yapılır: (Visual veritabanı araçları) çoğaltma için yabancı anahtar kısıtlamalarını devre dışı bırakma

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

sys.foreign_key_columns (Transact-SQL)