sql >> Database teknologi >  >> RDS >> Sqlserver

Feltværdien skal være unik, medmindre den er NULL

Jeg opretter en visning med et indeks, der ignorerer nullerne gennem where-klausulen...dvs. hvis du indsætter null i tabellen, er visningen ligeglad, men hvis du indsætter en ikke-nul værdi, vil visningen håndhæve begrænsningen.

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

Så nu har min udstyrstabel en asset_tag-kolonne, der tillader flere nuller, men kun unikke ikke-nullværdier.

Bemærk:Hvis du bruger mssql 2000, skal du "INDSTILLE ARITHABORT TIL " lige før nogen indsættelse, opdatering eller sletning udføres på bordet. Temmelig sikker på, at dette ikke er påkrævet på mssql 2005 og nyere.



  1. Sådan trækker du minutter fra en dato-tidsværdi i MariaDB

  2. mySQL summen af ​​to værdier i 2 forskellige tabeller

  3. Er der noget, der ligner en split()-metode i mySql?

  4. Sådan flyttes/kopieres alle databaser med brugere, skema og roller fra en server til en anden