5 Mayıs 2015 Salı

Bir Unique Index'in eşsizliği, Included Column'lar ile değişir mi?

Merhabalar,

Ortamlarımdan birindeki bir Unique Index'e ekleme yapmam gerektiğinde bunun testini yapmak istedim. Bu testin sonuçlarını sizlerle de paylaşayım.

Öncelikle geçici bir veritabanında aşağıdaki tabloyu oluşturdum:

CREATE TABLE Gecici_Tablo (i int, ii int, e varchar(50))

Daha sonra bu tabloda aşağıdaki Index'leri oluşturdum:

CREATE CLUSTERED INDEX cix on Gecici_Tablo(i)
CREATE UNIQUE INDEX uix on Gecici_Tablo(ii) INCLUDE(e)

Sonra da aşağıdaki kayıtları bu tabloya eklemeye çalıştım:

INSERT INTO Gecici_Tablo values(1, 1, 'a')
INSERT INTO Gecici_Tablo values(1, 1, 'b')
INSERT INTO Gecici_Tablo values(2, 1, 'b')

Yukarıdaki INSERT komutlarından sadece ilki başarıyla tamamlandı, çünkü Unique Index ile eşsizlik sadece Index Key'lerle tanımlanıyor. Bu örneğimizdeki Unique Index'imizdeki tek Index Key de "ii" isimli alandı.

SELECT * FROM Gecici_Tablo

Komutunu çalıştırdığımda sadece aşağıdaki sonuç dönüyor:

1,1,a

Kolay gelsin,
Ekrem Önsoy

Hiç yorum yok: