Patiesībā risinājums ir gaužām vienkāršs (sākot no SQL Server 2005)- izmantot filtrētos indeksus!
Tas izskatās tā:
Create Unique Nonclustered Index Ix_Unique on dbo.ManaTabulaJa nu galīgi nav ticība, ka tas strādā, šeit neliels piemērs:
(
j
)
Where (J IS NOT NULL)
Create Table #test
(
i int primary key identity,
j int
)
Go
Create Unique Nonclustered Index Ix_Unique on #test
(
j
)
Where (J IS NOT NULL)
Go
Insert into #test (j) values (1);
Insert into #test (j) values (2);
Insert into #test (j) values (2); -- fail
Insert into #test (j) values (Null);
Insert into #test (j) values (Null); -- WORKS
Go
select * from #test
Nav komentāru:
Ierakstīt komentāru