Kısıtlamaları

Kısıtlamaları şekilde tanımlamanıza olanak Veritabanı Altyapısı otomatik olarak zorlar bütünlük veritabanı.Kısıtlamaları sütunlarında verilen değerleri ile ilgili kurallar tanımlamak ve zorlama için standart bir mekanizma olan bütünlük.Kısıtlamalarını kullanmak için kullanılacak tercih edilen dml Tetikleyicileri, kuralları, ve Varsayılanları.sorgu iyileştiricisi De yüksek performans sorgu yürütme planları oluşturmak için kısıtlama tanımları kullanır.

Sınırlamaları sınıfları

SQL Serverkısıtlamaları aşağıdaki sınıflarını destekler:

  • not null sütun null değerleri kabul belirtir.Daha fazla bilgi için bkz: Null değerlere izin veren.

  • DENETLEME kısıtlamaları zorlamak etki alanı bütünlük içinde koymak değerler sınırlayarak bir sütun.Daha fazla bilgi için bkz: DENETLEME kısıtlamaları.

    DENETİM kısıtlamasını belirtir (true, false veya bilinmeyen değerlendirir) bir Boole arama koşulu sütun için girilen tüm değerlere uygulanır.YANLIŞ değerlendirmek tüm değerleri reddedilir.Her sütun için birden çok denetim kısıtlamalarını belirtebilirsiniz.Aşağıdaki örnek oluşturma kısıtlaması gösterir chk_id.Etki alanı ayrıca bu kısıtlamayı zorlar birincil anahtar anahtar için belirtilen aralık yalnızca sayı girildiğinden emin yaparak.

    CREATE TABLE cust_sample
       (
       cust_id            int      PRIMARY KEY,
       cust_name         char(50),
       cust_address         char(50),
       cust_credit_limit   money,
       CONSTRAINT chk_id CHECK (cust_id BETWEEN 0 and 10000 )
       )
    
  • BENZERSİZ kısıtlamaları sütunları küme değerleri benzersizliğini zorlamak.

    Bir benzersiz sınırlama yok iki satırlar içinde tablo sütunlar için aynı değere sahip olabilir.Birincil anahtarlar da benzersizlik, ancak birincil anahtarlar null için benzersiz değerlerden biri izin vermiyor.Daha fazla bilgi için bkz: UNIQUE Kısıtları.

  • PRIMARY key kısıtlamaları tanımlamak sütun ya da satırda tanıtan değerlerine sahip sütunları küme bir tablo.Daha fazla bilgi için bkz: BİRİNCİL anahtar sınırlamaları.

    İki satır yok bir tablo aynı birincil anahtar değerini alabilir.Herhangi bir null giremezsiniz sütun birincil anahtar.Küçük bir kullanmanızı öneririz tamsayı sütun birincil anahtar olarak.Her tablo bir birincil anahtar olmalıdır.Bir sütun veya bir birincil anahtar değeri bir aday anahtar olarak adlandırılır olarak nitelemek sütun birleşimi.

    Aşağıdaki örnek oluşturur part_sample belirtir ve tablo part_nmbr alan olarak birincil anahtar.

    CREATE TABLE part_sample
             (part_nmbr      int         PRIMARY KEY,
             part_name      char(30),
             part_weight      decimal(6,2),
             part_color      char(15) );
    
  • YABANCI anahtar kısıtlamaları tanımlar ve tablolar arasındaki ilişkileri zorlamak.Daha fazla bilgi için bkz: FOREIGN KEY Kısıtlamaları.

    Bir yabancı anahtar tablo 'ı başka bir aday anahtar noktaları tablo.Aşağıdaki örnekte, order_part kurar, başvuran yabancı anahtar tablosu part_sample önceden tanımlanmış tablo.

    CREATE TABLE order_part
          (order_nmbr      int,
          part_nmbr      int
             FOREIGN KEY REFERENCES part_sample(part_nmbr)
                ON DELETE NO ACTION,
          qty_ordered      int);
    GO
    

    Bu değere sahip herhangi bir aday anahtar ise, null dışında bir yabancı anahtar değeri olan bir satır ekleyemiyor.on DELETE yan tümcesi tümce hangi var olan dış anahtarların işaret için bir satırı silmeye çalıştığınızda hangi eylemleri alınır denetler.on DELETE yan tümcesi tümce aşağıdaki seçenekler vardır:

    • HİÇBİR eylem silme işlemi hata ile başarısız olur belirtir.

    • Art arda SIRALI sahip olan tüm satırların yabancı anahtarları silinmiş satırı işaret eden de silineceğini belirtir.

    • küme null yabancı anahtarları silinmiş satırı işaret eden tüm satırlarla null olarak küme belirtir.

    • Varsayılan yabancı anahtarları silinmiş satırı işaret eden sahip olan tüm satırların varsayılan değerlerine küme belirtir.Daha fazla bilgi için bkz: Varsayılanları.

    on update yan tümce hangi varolan anahtar değeri yabancı anahtarları noktası bir adayın güncelleştirmeye çalışırsanız gerçekleştirilen eylemleri tanımlar.Bu yan tümce, eylem yok, cascade, set null ve set default seçenekleri de destekler.

Sütun ve Tablo kısıtlamaları

Sütun kısıtlamaları veya Tablo kısıtlamaları kısıtlamalar olabilir.Bir sütun kısıtlaması sütun tanımının bir parçası olarak belirtilen ve yalnızca o sütun için geçerlidir.Önceki örneklerde kısıtlamaları sütun kısıtlamaları şunlardır.Bir tablo kısıtlaması sütun tanımından bağımsız olarak bildirilmiş ve birden fazla sütuna bir tablo uygulayabilirsiniz.Bir kısıtlamaya birden fazla sütun dahil edilmesi, Tablo kısıtlamaları kullanılması gerekir.

Örneğin bir tabloda iki veya daha fazla sütun içeriyorsa, birincil anahtar, her iki sütun eklemek için bir tablo kısıtlaması kullanmalısınız birincil anahtar.Düşünün bir tablo bir fabrika, bir bilgisayarda gerçekleşen olayları kaydeder.Çeşitli türdeki olayları aynı anda ortaya çıkabileceğini varsayalım saat, ancak aynı anda gerçekleşen iki olay yok saat aynı türden olabilir.Bunun içinde uygulanmasını tablo her ikisi de dahil olmak üzere tarafından event_type ve event_time gösterildiği gibi iki sütunlu birincil anahtar sütunlaraşağıdaki örnek.

CREATE TABLE factory_process
   (event_type   int,
   event_time   datetime,
   event_site   char(50),
   event_desc   char(1024),
CONSTRAINT event_key PRIMARY KEY (event_type, event_time) )

Ayrıca bkz.

Başvuru

Diğer Kaynaklar