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

Hvordan opretter jeg en unik begrænsning, der også tillader nuller?

Det, du leder efter, er faktisk en del af ANSI-standarderne SQL:92, SQL:1999 og SQL:2003, dvs. en UNIQUE begrænsning skal ikke tillade duplikerede ikke-NULL-værdier, men acceptere flere NULL-værdier.

I Microsoft-verdenen af ​​SQL Server er en enkelt NULL dog tilladt, men flere NULL er ikke...

I SQL Server 2008 , kan du definere et unikt filtreret indeks baseret på et prædikat, der udelukker NULL'er:

CREATE UNIQUE NONCLUSTERED INDEX idx_yourcolumn_notnull
ON YourTable(yourcolumn)
WHERE yourcolumn IS NOT NULL;

I tidligere versioner kan du ty til VIEWS med et NOT NULL prædikat for at håndhæve begrænsningen.



  1. Sådan vises alle lagrede procedurer i Oracle-databasen

  2. Se og ryd Postgres caches/buffere?

  3. Hvordan Asind() virker i PostgreSQL

  4. DATEDIFF() Eksempler i SQL Server