MsSQL unique index conditional kullanımı

Selamlar,

MsSQL'de bazı durumlarda tabloda, sipariş numarası aynı olan siparişin kayıt edilmemesini isteriz. Bunu kod tarafında da yapabiliriz lakin bazı durumlarda kod tarafındaki kaçak sebebi ile sql tablomuzda duplicate kayıtlar oluşabiliyor. Bu durum basit gibi görünsede B2C e-ticaret sistemlerinde aynı siparişi 2 kere müşteriye gönderilebiliriz :)

Bunu garantilemek için uniue index kullanırız. Ama burada özel durumlar olabiliyor, bazende çift kayıt olması istenebiliyor. Örneğin: İptal olan siparişin tekrar sistemlere düşmesi gibi... Bizim kurgumuzda web'den gelen siparişlerin asla çift kayıt olaması isteniyor. Aşağıdaki sorgu ile işi çözdük. 

create unique index OrderNumberUniqueIndex 
on AE_WebApi_Order(OrderNumber) 
where SpeCode = 'WEB';

Sipariş nuamarası ile sipariş kanalı web olan kayıtların tabloya kayıt edilmesini db seviyesinde engelledik.