Ik maak een weergave met de een index die de nulls negeert via de waar-clausule ... d.w.z. als u null in de tabel invoegt, maakt de weergave niet uit, maar als u een niet-null-waarde invoegt, zal de weergave de beperking afdwingen.
create view dbo.UniqueAssetTag with schemabinding
as
select asset_tag
from dbo.equipment
where asset_tag is not null
GO
create unique clustered index ix_UniqueAssetTag
on UniqueAssetTag(asset_tag)
GO
Dus nu heeft mijn uitrustingstabel een kolom asset_tag die meerdere nulls toestaat, maar alleen unieke niet-null-waarden.
Opmerking:Als u mssql 2000 gebruikt, moet u "ARITHABORT AAN zetten " vlak voordat er een invoeging, update of verwijdering op de tafel wordt uitgevoerd. Ik ben er vrij zeker van dat dit niet vereist is op MSSQL 2005 en hoger.