sql >> Database >  >> RDS >> Sqlserver

Veldwaarde moet uniek zijn, tenzij deze NULL is

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.



  1. Voeg gegevens in de tabel in met behulp van php

  2. Analytics met MariaDB AX - tThe Open Source Columnar Datastore

  3. Het invoegen van gegevens van CSV in MySQL DB is erg traag

  4. sql-achtige query traag als de parameter declare wordt gebruikt, maar snel als dat niet het geval is