Bienvenidos

Recuerda que tus comentarios son importantes y recuerda agradecer si te fue útil algun artículo publicado aquí.

L1f3 15 a D@nc3 Flo0r

domingo, 23 de diciembre de 2012

Es posible crear un índice único en un campo que acepte NULL ??

Este es un tip bastante interesante que me llegó de un website al que estoy inscrito.

Es posible tener un indice único en un campo que acepte NULL ??
Pues la respuesta es SI! y se puede lograr de la siguiente manera...


USE [DBPRUEBA]
GO

CREATE TABLE [dbo].[tbl_prueba](
 [id] [int] 
) ON [PRIMARY]

GO

CREATE UNIQUE NONCLUSTERED INDEX UNCI_prueba
ON [dbo].[tbl_prueba](id)
WHERE id IS NOT NULL
GO
--=======================================
insert into [dbo].[tbl_prueba] values(1)--success
insert into [dbo].[tbl_prueba] values(2)--success
insert into [dbo].[tbl_prueba] values(NULL)--success
insert into [dbo].[tbl_prueba] values(NULL)--success
insert into [dbo].[tbl_prueba] values(2)--error [Cannot insert duplicate key row in object 'dbo.tbl_test' with unique index 'NCI_test'.]

GO
select * from [dbo].[tbl_prueba]

El truco esta en pasar la condición deseada en la creación del índice

Buen fin de semana!