koşullu benzersiz kısıtlama
Bir sütuna bir değer için sütun bir dizi, ama benzersiz kısıtlamayı zorlamak için gereken bir durum var.
örneğin Tablo(İD, İsim, RecordStatus) gibi bir tablo var
Kayıt durumu Tek bir değer 1 veya 2 (etkin veya silinmiş), ve istiyorum oluşturmak için eşsiz bir kısıtlama üzerinde KİMLİĞİ, RecordStatus sadece zaman RecordStatus = 1, beri umurumda varsa birden fazla silinen kayıtları ile aynı kimlik.
tetikleyiciler yazma dışında, bunu yapabilir miyim?
sql server 2005 kullanıyorum
çok teşekkürler
CEVAP
Hani, the filtered index. Belgeler (vurgu benim): gelen
Süzülmüş bir dizin optimize kümelenmiş dizin veri iyi tanımlanmış bir alt kümesi seçme sorguları karşılamak için özellikle uygundur.Dizin için bir filtre koşulunu tablodaki satırların bir kısmını kullanır.İyi tasarlanmış bir filtre uygulanmış dizin sorgu performansını artırmak olarak tam tablo dizinleri ile karşılaştırıldığında dizin bakım ve depolama maliyetlerini azaltabilir.
Ve burada örnek bir filtre koşulunu ile benzersiz bir dizin birleştirme:
create unique index [MyIndex]
on [MyTable]([ID])
where [RecordStatus] = 1
MySQL boş değerlere izin verir benzers...
JPA birden çok benzersiz kısıtlama...
Boş sütun benzersiz kısıtlama oluşturm...
Birden çok sütun benzersiz kısıtlama...
SQL Server 2005 Nasıl Benzersiz Kısıtl...