Share via


column_constraint (Transact-SQL)

tablo kullanılarak eklenen yeni bir sütun tanımının bir parçası olan bir birincil anahtar, FOREIGN key, UNIQUE veya onay kısıtlama özelliklerini belirtir alter table.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

[ CONSTRAINT constraint_name ] 
{ 
    [ NULL | NOT NULL ] 
    { PRIMARY KEY | UNIQUE } 
        [ CLUSTERED | NONCLUSTERED ] 
        [ WITH FILLFACTOR =fillfactor ] 
        [ WITH ( index_option [, ...n ] ) ]
        [ ON { partition_scheme_name (partition_column_name) 
            | filegroup | "default" } ] 
    | [ FOREIGN KEY ] 
        REFERENCES [ schema_name . ] referenced_table_name 
            [ ( ref_column ) ] 
        [ ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ] 
        [ ON UPDATE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ] 
        [ NOT FOR REPLICATION ] 
    | CHECK [ NOT FOR REPLICATION ] ( logical_expression )
}

Bağımsız değişkenler

  • KISITLAMA
    BİRİNCİL anahtar, UNIQUE, FOREIGN key veya onay kısıtlaması tanımı başlangıcını belirtir.

  • constraint_name
    Kısıtlamanın adıdır.Kısıtlama adları için kuralları izleyin gerekir tanımlayıcıları, adı bir sayı işareti (#) ile başlatılamıyor olmasıdır.constraint_name Olan sağlanmayan, sistem tarafından oluşturulan bir ad kısıtlaması. için atanmış

  • NULL | NOT NULL
    sütun null değerleri kabul olup olmadığını belirtir.Yalnızca belirtilen varsayılan varsa null değerlere izin vermeyen sütunlar eklenebilir.Yeni bir sütun null değerleri ve varsayılan belirtilen veriyorsa, yeni bir sütun tabloher satır için null içerir.Yeni bir sütun null değerleri ve varsayılan tanımını veriyorsa eklenir yeni bir sütun, tablovarolan her satır için yeni sütun varsayılan değeri depolamak için değerleri ile seçeneği kullanılabilir.

    Yeni bir sütun null değerlere izin vermez, bir varsayılan tanımını yeni bir sütuneklemeniz gerekir.Yeni bir sütun , varolan her satırdaki yeni sütunlar varsayılan değer otomatik olarak yükler.

    Dikkat notuDikkat

    Ek bir sütun her satır için varsayılan değer ekleme gibi bir tabloveri satırları için fiziksel değişiklikler gerektirdiğinde alter table çalışırken ' % s'tablo tablo üzerinde kilitleri tutulur.Bu kilit yerde iken tablo içeriğini değiştirme yeteneğini etkiler.Aksine, null değerlere izin verir ve varsayılan değeri belirtmez, bir sütun ekleyerek bir meta veriler işlem ve kilit yok kapsar.

    create table veya alter table kullandığınızda, veritabanı ve oturum ayarlarını etkileyen ve büyük olasılıkla veri türünde bir sütun tanımında kullanılan null atanabilirlik geçersiz kılar.Her zaman açıkça null noncomputed sütunlarını tanımlayın veya not null öneririz veya bir kullanıcı tanımlı veri türü kullanıyorsanız, sütun veri türü varsayılan null atanabilirlik kullanmak izin.Daha fazla bilgi için, bkz. CREATE TABLE (Transact-SQL).

  • BİRİNCİL ANAHTAR
    benzersiz dizinkullanarak belirli bir sütun veya sütunları için varlıkbütünlük zorlar bir sınırlamadır. Her tabloiçin yalnızca bir PRIMARY key kısıtlaması oluşturulamaz.

  • BENZERSİZ
    benzersiz dizinkullanarak belirli bir sütun veya sütunları için varlıkbütünlük sağlar bir sınırlamadır.

  • KÜMELENMİŞ | KÜMELENMEMİŞ
    Belirleyen bir kümelenmiş veya kümelenmemiş dizin , birincil anahtar veya benzersiz kısıtlama oluşturulur.clustered için birincil anahtar kısıtlamaları varsayılan.BENZERSİZ kısıtlamaları varsayılan nonclustered için.

    Kümelenmiş kısıtlama veya dizin zaten bir tablovarsa, clustered belirtilemez.Kümelenmiş kısıtlama veya dizin zaten bir tablo, birincil anahtar kısıtlamaları varsayılan nonclustered için varsa.

    Biri olan sütunlar ntext, text, varchar(max), nvarchar(max), varbinary(max), xml, veya image veri türleri sütunlar için bir dizin belirtilemez

  • FILLFACTOR ile **=**fillfactor
    Nasıl tam belirtir Microsoft Veritabanı Altyapısı olun her dizin sayfası kullanılan saklanacağı dizini veri.Kullanıcı tarafından belirtilen fillfactor değerler 1 ile 100 arasında olabilir.Bir değer belirtilmezse, varsayılan değer 0'dır.

    Önemli notÖnemli

    Documenting ile FILLFACTOR = fillfactor , geçerli birincil anahtar veya UNIQUE kısıtlamaları yalnızca dizin seçeneği olarak saklanır, geriye doğru uyumluluk için ancak belgelenmemiştir bu şekilde gelecekteki sürümleri.Diğer dizin seçeneklerini de belirtilen index_option yan tümce alter table.

  • ON { partition_scheme_name**(partition_column_name)** | filegroup | "default"}
    Sınırlama için oluşturulan bir dizin depolama konumu belirtir.partition_scheme_name Belirtilen dizin bölümlenmiş ve bölümleri tarafından belirtilen filegroups için eşleştirilir partition_scheme_name.filegroup Belirtilmişse, dizin adlandırılmış dosya grubuoluşturulur."Varsayılan" belirtilen veya on hiç belirtilmemişse, dizin tabloolarak aynı dosya grubu oluşturulur.kümelenmiş dizin , birincil anahtar veya benzersiz kısıtlama eklendiğinde on belirtilmezse, kümelenmiş dizin oluşturulduğunda, bütün tablo için belirtilen dosya grubu taşınır.

    Bu bağlamda, varsayılan olarak, anahtar sözcük değil.Varsayılan dosya grubu için bir tanımlayıcıdır ve, gibi on sınırlanması gerekir "varsayılan" ya da on varsayılan**[]."Varsayılan"** belirtilmişse, QUOTED_IDENTIFIER seçeneği geçerli oturumiçin açık olması gerekir.Bu varsayılan ayardır.Daha fazla bilgi için, bkz. set QUOTED_IDENTIFIER (Transact-SQL).

  • YABANCI ANAHTAR BAŞVURULARI
    Veri sütuniçin başvuru bütünlük sağlayan bir sınırlamadır.YABANCI anahtar kısıtlamaları her değer sütun belirtilen sütun başvurulan tabloiçinde bulunmasını gerektirir.

  • schema_name
    FOREIGN key kısıtlaması tarafından başvurulan tablo ait olduğu şema addır.

  • referenced_table_name
    tablo FOREIGN key kısıtlaması tarafından başvurulan.

  • ref_column
    Yeni FOREIGN key kısıtlaması tarafından başvurulan parantez içinde bir sütun bulunur.

  • SİLME sırasında { Eylem | ART ARDA SIRALI | SET NULL | VARSAYILAN} KÜMESİ
    Bilgi tutarlılığına ilişki satırları varsa ve üst tablobaşvurulan satır silinir değiştirilinceye tablo satır eylem olacağını belirtir.Eylem yok varsayılandır.

    • EYLEM YOK
      SQL Server Veritabanı Altyapısı Raises hata ve üst tablo satır silme eylem toplu geri.

    • ART ARDA SIRALI
      Üst tablosatır silinirse başvuru tablo karşılık gelen satırlar silinir.

    • NULL AYARLAMA
      Ana tablo karşılık gelen satır silindiğinde yabancı anahtar oluşturan tüm küme null değerlerdir.yürütmekbu sınırlama yabancı anahtar sütunları null olmalıdır.

    • VARSAYILAN YAPMA
      Ana tablo karşılık gelen satır silindiğinde yabancı anahtar oluşturan tüm varsayılan değerlerine küme değerlerdir.yürütmekiçin bu sınırlama, tüm yabancı anahtar sütunlarının varsayılan tanımlamaları olmalıdır.sütun Null olabilecek, yok yok açık varsayılan değerini küme, örtülü, varsayılan değeri sütunnull olur.

    tablo kullanan mantıksal kayıtları birleştirme yayın dahil edilecek, cascade belirtmeyin.Mantıksal kayıtları hakkında daha fazla bilgi için bkz: Değişiklikleri'mantıksal kayıtları ile ilgili satırları gruplandırma.

    on delete cascade tanımlı bir INSTEAD of tetikleyici on delete değiştirilmiş tablo önceden varsa.

    Örneğin, AdventureWorks2008R2 veritabanı, ProductVendor tablo Satıcı tablo.ProductVendor.BusinessEntityID yabancı anahtar başvuruları Vendor.BusinessEntityID birincil anahtar.

    delete deyim içinde bir satırda yürütülür, Satıcı tablove on delete cascade eylem için belirlenen ProductVendor.BusinessEntityID, Veritabanı Altyapısı bir veya daha fazla bağımlı satır için denetimlerini ProductVendor tablo.Herhangi varsa, bağımlı olarak satırları ProductVendor tablo silinir, başvurulan satır ek olarak Satıcı tablo.

    Buna karşılık, Hayır eylem belirttiyseniz, Veritabanı Altyapısı hata yükseltir ve silme eylem geri alır Satıcı en az bir satırda olduğunda satır ProductVendorbaşvurduğutablo .

  • Update { Eylem | ART ARDA SIRALI | SET NULL | VARSAYILAN} KÜMESİ
    Bilgi tutarlılığına ilişki satırları olan ve bulunulan satırın üst tablogüncelleştirilir, değiştirilen tablo satır eylem olacağını belirtir.Eylem yok varsayılandır.

    • EYLEM YOK
      Veritabanı Altyapısı Hata, raises ve üst tablo satır güncelleştirme eylem toplu geri.

    • ART ARDA SIRALI
      Üst tablosatır güncelleştirildiğinde başvuru tablo karşılık gelen satırlar güncelleştirilir.

    • NULL AYARLAMA
      Ana tablo karşılık gelen satır güncelleştirildiğinde yabancı anahtar oluşturan tüm küme null değerlerdir.yürütmekbu sınırlama yabancı anahtar sütunları null olmalıdır.

    • VARSAYILAN YAPMA
      Ana tablo karşılık gelen satır güncelleştirildiğinde yabancı anahtar oluşturan tüm varsayılan değerlerine küme değerlerdir.yürütmekiçin bu sınırlama, tüm yabancı anahtar sütunlarının varsayılan tanımlamaları olmalıdır.sütun Null olabilecek, yok yok açık varsayılan değerini küme, örtülü, varsayılan değeri sütunnull olur.

    tablo kullanan mantıksal kayıtları birleştirme yayın dahil edilecek, cascade belirtmeyin.Mantıksal kayıtları hakkında daha fazla bilgi için bkz: Değişiklikleri'mantıksal kayıtları ile ilgili satırları gruplandırma.

    on update cascade tanımlı INSTEAD of tetikleyici on update değiştirilmiş tablo önceden varsa.

    Örneğin, AdventureWorks2008R2 veritabanı, ProductVendor tablo Satıcı tablo.ProductVendor.BusinessEntityID yabancı anahtar başvuruları Vendor.VendorID birincil anahtar.

    Bir satırda bulunan bir update deyim yürütüldü, Satıcı tablo ve bir on update cascade eylem için belirlenen ProductVendor.BusinessEntityID, Veritabanı Altyapısı bir veya daha fazla bağımlı satır için denetimlerini ProductVendor tablo.Herhangi bulunup bulunmadığını, bağımlı satır ProductVendor tablo güncelleştirilmesi, başvurulan satır ek olarak Satıcı tablo.

    Buna karşılık, Hayır eylem belirttiyseniz, Veritabanı Altyapısı hata yükseltir ve Güncelleştir eylem geri alır Satıcı en az bir satırda olduğunda satır ProductVendorbaşvurduğutablo .

  • ÇOĞALTMA İÇİN DEĞİL
    YABANCI anahtar kısıtlamaları ve Kontrol kısıtlamaları için belirtilebilir.İçin bir kısıtlama bu yan tümce belirtilirse, çoğaltma aracıları Ekle gerçekleştirdiğinizde kısıtlaması zorlanmaz, güncelleştirme veya silme işlemleri.Daha fazla bilgi için, bkz. Denetleme sınırlamaları, kimlikleri ve tetikleyiciler not ile çoğaltma.

  • ONAY
    Bir sütun veya sütunlara girilebilecek olası değerler sınırlayarak etki alanıbütünlük zorlar bir sınırlamadır.

  • logical_expression
    Bir denetim kısıtlamasında yer kullanılan mantıksal bir ifade ve true veya false döndürür.logical_expressionkullanılan onay kısıtlamaları başka bir tablo başvuru yapamazsınız ama aynı tablo için aynı satırdaki diğer sütunlara başvurabilir.ifade , bir diğer ad veri türü başvuru yapamazsınız.

Açıklamalar

Her birincil anahtar ve benzersiz kısıtlama bir dizin oluşturur.BENZERSİZ ve birincil anahtar kısıtlamaları sayısı 999 kümelenmemiş dizinleri ve 1 kümelenmiş dizin tablo üzerinde dizin sayısı neden olamaz.

Örnekler

Örnekler için, bkz. ALTER TABLE (Transact-SQL).