sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cómo creo una restricción única que también permita valores nulos?

Lo que está buscando es, de hecho, parte de los estándares ANSI SQL:92, SQL:1999 y SQL:2003, es decir, una restricción ÚNICA debe prohibir valores duplicados que no sean NULL pero aceptar múltiples valores NULL.

Sin embargo, en el mundo de SQL Server de Microsoft, se permite un solo NULL, pero no se permiten varios NULL...

En Servidor SQL 2008 , puede definir un índice filtrado único basado en un predicado que excluye valores NULL:

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

En versiones anteriores, puede recurrir a VISTAS con un predicado NOT NULL para hacer cumplir la restricción.