Restricción UNIQUE - ¿ como Aceptar + de un valor NULL ??

13/08/2005 - 22:39 por Marcelo Clavero | Informe spam
Estimados: Hola a Todos

Es posible tener una columna de una tabla de manera que acepte solo NULLS o
valores Únicos (cuando son <> NULL) ? Quería hacerlo sin usar triggers o
UDFs en la restricciónentonces leí en los BOL que las restricciones
UNIQUE admiten columnas NULL (a diferencia de los indices de PK), entonces
probé, pero al probar, solo deja poner una sola fila con NULL, y a la
segunda salta el error de la restricción Unique.

Cómo lo harían ustedes ???

Un ejemplo práctico con una muestra de datos:

Id_clave Id_valor
1 NULL
2 13
3 20

Yo querría que al agregar:
4 13 me dé error porque 13 ya existe en Id_valor (eso
funcionó con la Restriccón Unique)
y al agregar:
4 NULL no me dé error (esto NO FUNCIONÓ).

Espero haberme explicado bien.

Les agradezco desde ya el esfuerzo y vayan mis respetos a los "genios" que
asiduamente nutren este news, ayudando a
entender de qué se trata el mundillo de las BD.

Marcelo Clavero
 

Leer las respuestas

#1 Maxi
13/08/2005 - 23:16 | Informe spam
Hola, una opcion seria

Te armas una UDF y luego armas una restriccion Check que use la UDF :-)


Maxi - Buenos Aires - Argentina
Desarrollador 3 Estrellas

Msn_messager:
mail: Maxi.da[arroba]gmail.com

"Marcelo Clavero" escribió en el mensaje
news:
Estimados: Hola a Todos

Es posible tener una columna de una tabla de manera que acepte solo NULLS
o
valores Únicos (cuando son <> NULL) ? Quería hacerlo sin usar triggers o
UDFs en la restricciónentonces leí en los BOL que las restricciones
UNIQUE admiten columnas NULL (a diferencia de los indices de PK), entonces
probé, pero al probar, solo deja poner una sola fila con NULL, y a la
segunda salta el error de la restricción Unique.

Cómo lo harían ustedes ???

Un ejemplo práctico con una muestra de datos:

Id_clave Id_valor
1 NULL
2 13
3 20

Yo querría que al agregar:
4 13 me dé error porque 13 ya existe en Id_valor (eso
funcionó con la Restriccón Unique)
y al agregar:
4 NULL no me dé error (esto NO FUNCIONÓ).

Espero haberme explicado bien.

Les agradezco desde ya el esfuerzo y vayan mis respetos a los "genios" que
asiduamente nutren este news, ayudando a
entender de qué se trata el mundillo de las BD.

Marcelo Clavero


Preguntas similares