Berkant KARDUMAN

Teknoloji günlüğü

Uniqe index oluştururken Null Değerleri Görmezden Gelmek

Unique index de terkrarlayan null değerler

Normalde null=null ve null != null karşılaştırmalarının false değer dönmesi gerekir. Böylece uniqe index oluştururken null değerler görmezden gelinir. Ancak durum MsSQL de öyle olmuyor.
MsSQL ANSI standartlarının dışında null değerleri uniqe indexlerde duplicate olarak gösteriyor. Bu durumda null değerler içerebilen bir kolonda unique index oluşturumayı denediğinizde

create unique index unq_test on test(UN);

Msg 1505, Level 16, State 1, Line 1
The CREATE UNIQUE INDEX statement terminated because a duplicate key was found for the object name blabla ... 
The duplicate key value is (<NULL>)
hatası alıyorsuuz.

bu durumu aşmak için bir kaç yöntem var. Bence en doğrusu filtered index kullanmak.

create unique index unq_test on test(UN)  where UN is not null

;

Loading