sql >> Databasteknik >  >> RDS >> Sqlserver

Hur skapar jag en unik begränsning som också tillåter nollor?

Det du letar efter är verkligen en del av ANSI-standarderna SQL:92, SQL:1999 och SQL:2003, dvs en UNIK begränsning måste inte tillåta duplicerade icke-NULL-värden men acceptera flera NULL-värden.

I Microsofts värld av SQL Server är dock en enda NULL tillåten men flera NULL är inte...

I SQL Server 2008 , kan du definiera ett unikt filtrerat index baserat på ett predikat som exkluderar NULL:

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

I tidigare versioner kan du använda VIEWS med ett NOT NULL-predikat för att upprätthålla begränsningen.



  1. Django oracle db-inställningar

  2. Möjliggöra kundernas affärsinformation via datakataloger, affärsordlistor och datastyrning

  3. Docker:Kombinera flera bilder

  4. Avancerad SQL:Infoga utdata från den parameteriserade tabellvärderade funktionen i SQL-tabellen