sql >> Database >  >> RDS >> Sqlserver

Hoe maak ik een unieke beperking die ook nulls toestaat?

Wat u zoekt, maakt inderdaad deel uit van de ANSI-standaarden SQL:92, SQL:1999 en SQL:2003, dwz een UNIEKE beperking moet dubbele niet-NULL-waarden toestaan, maar meerdere NULL-waarden accepteren.

In de Microsoft-wereld van SQL Server is echter een enkele NULL toegestaan, maar meerdere NULL's niet...

In SQL Server 2008 , kunt u een unieke gefilterde index definiëren op basis van een predikaat dat NULL's uitsluit:

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

In eerdere versies kunt u een beroep doen op VIEWS met een NOT NULL-predikaat om de beperking af te dwingen.



  1. Een CTE maken in Oracle

  2. Haal de datum/tijd uit een Unix-tijdstempel in SQLite

  3. Verzamelmethode:PRIOR &NEXT-functies in Oracle Database

  4. Dynamisch doorgeven van kolomnamen voor een recordvariabele in PostgreSQL