Benzersiz dizinler oluşturun

Bu konuda nasıl bir tablo benzersiz bir dizin oluşturmak için açıklar SQL Server 2012kullanarak SQL Server Management Studioya Transact-SQL. Benzersiz dizin, yinelenen değerlerin dizin anahtarı içerir ve bu nedenle tablodaki her satırı benzersiz şekilde olduğunu garanti eder. UNIQUE sınırlamasıyla oluşturma ve bir kısıtlaması bağımsız olan benzersiz bir dizin oluşturma arasında hiçbir önemli farklılıklar vardır. Aynı şekilde veri doğrulama oluşur ve sorgu en iyi duruma getiricisi tarafından bir kısıtlama veya el ile oluşturulan benzersiz bir dizin arasında ayrım yapmaz. Ancak, sütun UNIQUE sınırlamasıyla oluşturma hedefi açık dizin yapar. UNIQUE kısıtlamaları ile ilgili daha fazla bilgi için bkz: UNIQUE kısıtlamaları ve Check kısıtlamaları.

Benzersiz bir dizin oluşturduğunuzda, yinelenen anahtarlar yoksay seçeneği ayarlayabilirsiniz. Bu seçenek ayarlanırsa Evet ve sizin girişimi (INSERT deyimi ile) birden çok satır etkiler veri ekleyerek yinelenen anahtarlar oluşturmak, yinelenen içeren satır eklenmez. O eğer No, tüm ekleme işlemi başarısız olur ve tüm verileri geri alındı.

[!NOT]

Bu sütun birden çok satırda boş değer içeriyorsa, tek bir sütun üzerinde benzersiz bir dizin oluşturamazsınız. Benzer şekilde, sütun birleşimi birden çok satırda boş değer içeriyorsa, birden çok sütun üzerinde benzersiz bir dizin oluşturamazsınız. Bu dizin oluşturma amaçları için yinelenen değerleri olarak kabul edilir.

Bu Konuda

  • Başlamadan Önce

    Benzersiz bir dizin yararları

    Tipik uygulamaları

    Sınırlamalar ve Kısıtlamalar

    Güvenlik

  • Tablo benzersiz bir dizin oluşturma için kullanma:

    SQL Server Management Studio

    Transact-SQL

Başlamadan Önce

Benzersiz bir dizin yararları

  • Birden çok sütun benzersiz dizinler dizin anahtar değerleri her birleşimini benzersiz olmasını garanti. Örneğin, benzersiz bir dizin üzerinde bir kombinasyonu oluşturduysanız Soyadı, ad, ve MiddleName sütunlar, hiçbir iki satır tablosundaki bu sütunların değerleri aynı kombinasyonu sahip.

  • Her sütundaki verilerin benzersiz olması koşuluyla, aynı tabloda benzersiz kümelenmiş dizin ve birden çok benzersiz kümelendirilmemiş dizinler oluşturabilirsiniz.

  • Benzersiz dizinler tanımlanmış sütunlar veri bütünlüğü sağlamak.

  • Benzersiz dizinler daha verimli yürütme planları üretebildiği sorgu iyileştirici yararlı ek bilgi sağlar.

Tipik uygulamaları

Benzersiz dizinler, aşağıdaki yollarla uygulanır:

  • PRIMARY key veya UNIQUE sınırlaması

    PRIMARY key kısıtlaması oluşturduğunuzda, benzersiz kümelenmiş dizin sütun veya sütunları tablo kümelenmiş bir dizin zaten var olmayan ve benzersiz kümelendirilmemiş dizin belirtmezseniz, otomatik olarak oluşturulur. Birincil anahtar sütunu null değerlere izin veremez.

    BENZERSİZ kısıtlama oluşturduğunuzda, benzersiz kümelendirilmemiş dizin varsayılan olarak benzersiz kısıtlamayı zorlamak için oluşturulur. Tablo kümelenmiş bir dizin zaten mevcut değilse, benzersiz kümelenmiş dizin belirtebilirsiniz.

    Daha fazla bilgi için PRIMARY KEY Constraintsve UNIQUE Constraints.

  • Dizin bağımsız bir sınırlama

    Birden çok benzersiz kümelendirilmemiş dizinler bir tabloda tanımlanır.

    Daha fazla bilgi için, bkz. Index (Transact-sql) oluştur.

  • Dizin oluşturulmuş görünüm

    Dizin oluşturulmuş görünüm oluşturmak için benzersiz kümelenmiş dizin, bir veya daha çok görünümü sütunları tanımlanır. Görünüm yürütülür ve sonuç kümesi dizin yaprak düzeyini kümelenmiş bir dizin içinde saklanan tablo verileri aynı şekilde depolanır. Daha fazla bilgi için, bkz. Dizin oluşturulmuş görünümler oluşturma.

Sınırlamalar ve Kısıtlamalar

  • Verilerde yinelenen anahtar değerleri yoksa, bir benzersiz dizin, benzersiz kısıtlama veya PRIMARY key kısıtlaması oluşturulamaz.

  • Benzersiz kümelendirilmemiş dizin nonkey sütunlar içerebilir. Daha fazla bilgi için, bkz. Eklenen sütunlar ile dizin oluşturmak.

Güvenlik

İzinler

Tablo veya görünümde ALTER izni gerektirir. Kullanıcı-meli var olmak a üye sysadmin sabit sunucu rolü veya db_ddladmin ve db_owner veritabanı rolleri sabit.

Başa Dön bağlantısıyla kullanılan ok simgesi[Top]

SQL Server Management Studio Kullanarak

Tablo Tasarımcısı'nı kullanarak benzersiz bir dizin oluşturmak için

  1. Nesne Gezgini'nde benzersiz bir dizin oluşturmak istediğiniz tabloyu içeren veritabanı genişletin.

  2. Genişletme tablo ağıl.

  3. Ve benzersiz bir dizin oluşturmak istediğiniz tabloyu sağ Tasarım.

  4. Tarih Tablo Tasarımcısı Seç menüsünden Dizinler/Anahtarlar.

  5. İçinde Dizinler/Anahtarlar iletişim kutusunda, tıklatın Ekle.

  6. İçinde yeni bir dizin seçin Seçili birincil ve Unique tuşu veya dizini metin kutusu.

  7. Ana kılavuz altında **(genel)**seçin türü ve seçin dizini listeden.

  8. Seçin sütunve sonra tıklatın üç nokta (...).

  9. İçinde Dizin sütunları iletişim kutusunun altında Sütun adı, dizine eklemek istediğiniz sütunları seçin. 16 Sütunları seçebilirsiniz. En iyi performans için dizin başına yalnızca bir veya iki sütun seçin. Seçtiğiniz her sütun için dizin değerleri bu sütunun artan veya azalan düzende düzenler olup olmadığını gösterir.

  10. Dizin için tüm sütunları seçili olduğunda tıklayın Tamam.

  11. Kılavuz altında **(genel)**seçin Olan benzersiz ve seçin Evet listeden.

  12. İsteğe bağlı: Ana kılavuzunda yer altında Tablo Tasarımcısıseçin Yinelenen anahtarlar yoksay ve seçin Evet listeden. Yinelenen anahtar içinde benzersiz bir dizin oluşturacak veri eklemek için girişimleri yoksaymak istiyorsanız bunu.

  13. Tıklayın yakın.

  14. Tarih dosyasını menüsünden tıklatın kaydetmektable_name.

Nesne Gezgini'ni kullanarak benzersiz bir dizin oluşturma

  1. Nesne Gezgini'nde benzersiz bir dizin oluşturmak istediğiniz tabloyu içeren veritabanı genişletin.

  2. Genişletme tablo ağıl.

  3. Benzersiz bir dizin oluşturmak istediğiniz tablo genişletin.

  4. Sağ Dizinler klasörüne gelin Yeni bir dizinve Non-Clustered Index….

  5. İçinde Yeni bir dizin iletişim kutusunu Genel sayfasında, yeni dizin adını dizin adı kutusu.

  6. Seçin özel onay kutusu.

  7. Altında dizin anahtar sütunları, tıklayın Ekle….

  8. İçinde Seçin sütunlarından table_name iletişim kutusunda, onay kutusunu veya tablo sütunu veya benzersiz dizine eklenecek sütunların onay kutularını seçin.

  9. Click OK.

  10. İçinde Yeni bir dizin iletişim kutusunda, tıklatın Tamam.

Başa Dön bağlantısıyla kullanılan ok simgesi[Top]

Transact-SQL'i Kullanma

Bir tablo benzersiz bir dizin oluşturmak için

  1. İçinde Object Explorer, örneğine bağlanmak Veritabanı Altyapısı.

  2. Standart çubuğunda Yeni sorgu.

  3. Kopyalama ve aşağıdaki örnek sorgu penceresine yapıştırın ve tıkırtı Execute.

    USE AdventureWorks2012;
    GO
    -- Find an existing index named AK_UnitMeasure_Name and delete it if found
    IF EXISTS (SELECT name from sys.indexes
               WHERE name = N'AK_UnitMeasure_Name') 
       DROP INDEX AK_UnitMeasure_Name ON Production.UnitMeasure; 
    GO
    -- Create a unique index called AK_UnitMeasure_Name
    -- on the Production.UnitMeasure table using the Name column.
    CREATE UNIQUE INDEX AK_UnitMeasure_Name 
       ON Production.UnitMeasure (Name); 
    GO
    

Daha fazla bilgi için, bkz. Index (Transact-sql) oluştur.

Başa Dön bağlantısıyla kullanılan ok simgesi[Top]