Aracılığıyla paylaş


Yabancı Anahtar İlişkilerini Değiştir

Şunlar için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler Azure SQL DatabaseAzure SQL Managed InstanceSQL database in Microsoft Fabric

SQL Server Management Studio veya Transact-SQL kullanarak SQL Server'daki bir ilişkinin yabancı anahtar tarafını değiştirebilirsiniz. Bir tablonun yabancı anahtarını değiştirmek, o tablodaki sütunların birincil anahtar tablosundaki sütunlarla ilişkisini değiştirir.

Bu Konuda

Başlamadan Önce

Sınırlamalar ve Kısıtlamalar

Yeni yabancı anahtar sütunu, ilişkili olduğu birincil anahtar sütununun veri türü ve boyutuyla eşleşmelidir; bu özel durumlar dışında:

  • char sütunu veya sysname sütunu varchar sütunuyla ilişkilendirilebilir.

  • ikili sütunu, varbinary sütunuyla ilişkilendirilebilir.

  • Diğer ad veri türü, temel türüyle ilişkilendirilebilir.

Security

Permissions

Tabloda ALTER iznine sahip olmanız gerekir.

SQL Server Management Studio'yu kullanma

Yabancı anahtarı değiştirmek için

  1. Nesne Gezgini'ndeyabancı anahtarla tabloyu genişletin ve sonra Anahtarlargenişletin.

  2. Değiştirilecek yabancı anahtara sağ tıklayın ve Değiştirseçin.

  3. Yabancı Anahtar İlişkileri iletişim kutusunda aşağıdaki değişiklikleri yapabilirsiniz.

    Seçili İlişki
    Mevcut ilişkileri listeler. Özelliklerini sağ tarafta kılavuzda göstermek için bir ilişki seçin. Liste boşsa, tablo için hiçbir ilişki tanımlanmamıştır.

    Add
    Yeni bir ilişki oluşturun. İlişki geçerli olmadan önce Tablo ve Sütun Belirtimleri ayarlanmalıdır.

    Delete
    "Seçili İlişkiler listesinde bulunan seçili ilişkiyi silin." İlişkinin eklenmesini iptal etmek için bu düğmeyi kullanarak ilişkiyi kaldırın.

    Genel Kategori
    Varolan Verileri Oluşturma veya Yeniden Etkinleştirme Sırasında Kontrol Edin ve Tablolar ve Sütunlar Belirtimlerini göstermek için genişletin.

    Oluşturma veya Yeniden Etkinleştirme ile İlgili Mevcut Verileri Denetleme
    Kısıtlama oluşturulmadan veya yeniden etkinleştirilmeden önce tablodaki tüm mevcut verileri kısıtlamaya karşı doğrulayın.

    Tablo ve Sütun Belirtimleri Kategorisi
    İlişkide yabancı anahtar ve birincil (veya benzersiz) anahtar olarak görev yapan kolonların hangi tablolardan olduklarını göstermek için genişletin. Bu değerleri düzenlemek veya tanımlamak için özellik alanının sağ tarafındaki üç nokta düğmesine (...) tıklayın.

    Yabancı Anahtar Taban Tablosu
    Seçili ilişkide yabancı anahtar olarak davranan sütunu içeren tabloyu gösterir.

    Yabancı Anahtar Sütunları
    Seçili ilişkide hangi sütunun yabancı anahtar olarak davrandığı gösterilir.

    birincil/benzersiz anahtar temel tablo
    Seçili ilişkide birincil (veya benzersiz) anahtar olarak davranan sütunu içeren tabloyu gösterir.

    Birincil/Benzersiz Anahtar Sütunları
    Seçilen ilişkide hangi sütunun birincil (veya benzersiz) anahtar olarak davrandığı gösterilir.

    Kimlik Kategorisi
    Ad ve Açıklamaözellik alanlarını göstermek için genişletin.

    Name
    İlişkinin adını gösterir. Yeni bir ilişki oluşturulduğunda, Tablo Tasarımcısıetkin penceresindeki tabloyu temel alan bir varsayılan ad verilir. İstediğiniz zaman adı değiştirebilirsiniz.

    Description
    İlişkiyi açıklayın. Daha ayrıntılı bir açıklama yazmak için Açıklama'ne tıklayın ve ardından özellik alanının sağında görüntülenen üç nokta simgesine (...) tıklayın. Bu, metin yazmak için daha büyük bir alan sağlar.

    Tablo Tasarımcısı Kategori
    Mevcut Verileri Oluşturma veya Yeniden Etkinleştirme Üzerinde Denetlemek İçin Genişlet ve Çoğaltma İçin Zorla.

    Çoğaltma İçin Zorla
    Bir çoğaltma aracısı bu tabloda ekleme, güncelleştirme veya silme işlemi gerçekleştirdiğinde kısıtlamanın zorunlu kılınıp uygulanmayacağını gösterir.

    Yabancı Anahtar Kısıtlamasını Zorlama
    Bu değişiklikler yabancı anahtar ilişkisinin bütünlüğünü geçersiz kılacaksa, ilişkideki sütunların verilerinde değişikliklere izin verilip verilmeyeceğini belirtin. Bu tür değişikliklere izin vermek istemiyorsanız Evet'i, izin vermek istiyorsanız Hayır'ı seçin.

    INSERT ve UPDATE Özellik Kategorisi
    İlişki içerisindeki Silme Kuralı ve Güncelleme Kuralı bilgilerini göstermek için açın.

    Kuralı Sil
    Bir kullanıcı yabancı anahtar ilişkisine dahil olan verileri içeren bir satırı silmeye çalışırsa ne olacağını belirtin:

    • Eylem Yok Kullanıcıya silmeye izin verilmediğini ve DELETE'in geri döndürüldüğünü bildiren bir hata iletisi görüntülenir.

    • Kademeli Yabancı anahtar ilişkisine dahil olan verileri içeren tüm satırlar silinir. Tablo, mantıksal kayıtlar kullanan bir birleştirme yayınına dahil edilecekse CASCADE'i belirtmeyin.

    • Null Ayarla Tablonun tüm yabancı anahtar sütunları null değerleri kabul edebilirse değeri null olarak ayarlar.

    • Varsayılanı Ayarla Tablonun tüm yabancı anahtar sütunlarında varsayılan değerler tanımlanmışsa, değeri sütun için tanımlanan varsayılan değere ayarlar.

    Kuralı Güncelleştir
    Kullanıcı bir satırı yabancı anahtar ilişkisine dahil olan verilerle güncelleştirmeye çalışırsa nelerin gerçekleşeceğini belirtin:

    • Eylem Yok Kullanıcıya güncelleştirmeye izin verilmediğini ve UPDATE'in geri getirildiğini bildiren bir hata iletisi görüntülenir.

    • Cascade Yabancı anahtar ilişkisine dahil olan verileri içeren tüm satırları günceller. Tablo, mantıksal kayıtlar kullanan bir birleştirme yayınına dahil edilecekse CASCADE'i belirtmeyin.

    • Null Ayarla Tablonun tüm yabancı anahtar sütunları null değerleri kabul edebilirse değeri null olarak ayarlar.

    • Varsayılanı Ayarla Tablonun tüm yabancı anahtar sütunlarında varsayılan değerler tanımlanmışsa, değeri sütun için tanımlanan varsayılan değere ayarlar.

  4. Dosya menüsünde, tablo adını kaydettıklayın.

Transact-SQL Kullanımı

Yabancı anahtarı değiştirmek için

Transact-SQL kullanarak yabancı anahtar kısıtlamasını değiştirmek için, önce var olan FOREIGN KEY kısıtlamasını silmeniz ve ardından yeni tanım ile yeniden oluşturmanız gerekir. Daha fazla bilgi için bkz. Yabancı Anahtar İlişkilerini Silme ve Yabancı Anahtar İlişkileri Oluşturma.