Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Details
| Attribute | Value |
|---|---|
| Ürün Adı | SQL Server |
| Olay Kimliği | 1505 |
| Olay Kaynağı | MSSQLSERVER |
| Bileşen | SQLEngine |
| Sembolik Ad | DUP_KEY |
| İleti Metni | CREATE UNIQUE INDEX , nesne adı '%.*ls' ve indeks adı '%.*ls' için tekrarlanan bir anahtar bulunduğundan sonlandırıldı. Yinelenen anahtar değeri %ls. |
Explanation
Bu hata, benzersiz bir indeks oluşturmaya çalıştığınızda ve tablodaki birden fazla satır belirtilen çoğaltma değeri içerdiğinde ortaya çıkar. Bir indeks, bir indeks oluşturup UNIQUE anahtar kelimesini belirttiğinizde veya UNIQUE bir kısıtlama oluşturduğunuzda oluşturulur. Tablo, indeks veya kısıtlamada tanımlanan sütunlarda tekrarlanan değerlere sahip satır içeremez.
Aşağıdaki Çalışan tablosunda verileri ele alın:
| Soyadı | İlk İsim | İş Unvanı | Hiredate |
|---|---|---|---|
| Walters | Ramiz | Kıdemli Araç Tasarımcısı | 2004-11-19 |
| Kahverengi | Kevin | Pazarlama Asistanı | null |
| Kahverengi | Jo | Tasarım Mühendisi | null |
| Walters | Ramiz | Araç Tasarımcısı | 2001-08-09 |
Satırlardaki tekrarlanan değerler nedeniyle Soyadı veya Soyad, İlk Adı sütun kombinasyonlarında benzersiz bir indeks oluşturulamaz.
Daha az belirgin olan ise HireDate sütununda benzersizlik ihlali olasılığıdır. Indeksleme amaçları için, NULL değerler eşit olarak karşılaştırılır. Bu nedenle, anahtar değerler birden fazla satırda NULL ise, benzersiz bir indeks veya kısıtlama oluşturamazsınız. Yukarıdaki veriler göz önüne alındığında, HireDate veya LastName, HireDate sütun kombinasyonlarında benzersiz bir indeks oluşturulamaz.
1505 numaralı hata mesajı, tekillik kısıtlamasını ihlal eden ilk satırı döndürür. Tabloda başka tekrarlanan satırlar da olabilir. Tüm tekrarlanan satırları bulmak için, belirtilen tabloyu sorgulayın ve GROUP BY ile HAVING cümlelerini kullanarak tekrarlanan satırları raporlayın. Örneğin, aşağıdaki sorgu, Çalışan tablosunda çoğalan ad ve soyadların çoğaltılmış satırlarını döndürür.
Soyad, İlk İsim, sayı(*) dbo'dan SEÇİN. Çalışan GRUBU Soyadla, Birinci Adı SAYI (*) > 1;
Kullanıcı Eylemi
Aşağıdaki çözümleri düşünün.
Benzersiz bir kompozit oluşturmak için indeks veya kısıtlama tanımında sütunlar ekleyin veya çıkarın. Önceki örnekte, indeks veya kısıtlama tanımına bir MiddleName sütunu eklemek çoğaltma sorununu çözebilir.
Benzersiz bir indeks veya kısıtlama için sütun seçerken NULL OLMAYAN sütunları seçin. Bu, birden fazla satırın anahtar değerlerde NULL içermesi durumunda benzersizlik ihlali olasılığını ortadan kaldırır.
Eğer tekrarlanan değerler veri girişi hatalarından kaynaklanıyorsa, veri manuel olarak düzeltin ve ardından indeks veya kısıtlama oluşturun. Bir tablodaki tekrarlanan satırların kaldırılması hakkında bilgi için, SQL Server tablosundan tekrarlanan satırları kaldır seçeneğini inceleyin.