Ayuda con un SP

24/02/2005 - 11:35 por Pablo Guevara | Informe spam
Hola Grupo,

Aplicando las buenas practicas que he encontrado en el grupo, hice el
siguiente Procedimiento Almacenad:


CREATE PROCEDURE dbo.Elemento_C
@IdElementos bigint=Null,
@Parent bigint = Null,
@TipoElemento bigint = Null

AS

SELECT
[IdElementos],
[IdTipoElemento],
[Nombre],
[Parent],
[Orden],
[URL],
[UsuarioCreacion],
[FechaCreacion],
[UsuarioModificacion],
[FechaModificacion],
[Activo]
FROM
[Elemento]
WHERE
[IdElementos]= IsNull(@IdElementos, IdElementos)
and [Parent] = IsNull(@Parent, Parent)
and [IdTipoElemento] = IsNull(@TipoElemento, [IdTipoElemento])
GO

El problema se presenta cuando uno de los campos es Null, por ejemplo:
Parent, el Sp no me devuelve ningun registro.

¿Hay alguna forma de solucionarlo?

Gracias.

Pablo

+++
 

Leer las respuestas

#1 Carlos Sacristán
24/02/2005 - 11:58 | Informe spam
NULL no es igual a NULL ni a nada, por eso no te va a devolver ningún
registro a menos que lo compares explícitamente con la función <campo> IS
NULL

Por otro lado, no te recomiendo que codifiques las búsquedas del modo
que lo estás haciendo porque estás impidiendo que el motor use índices
útiles que pueda tener esa tabla (puedes comprobarlo en el plan de ejecución
del procedimiento). Para ganar rendimiento es mejor filtrar por aquellos
parámetros que vengan inicializados a un valor diferente de NULL y obviar
los otros


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Pablo Guevara" escribió en el mensaje
news:
Hola Grupo,

Aplicando las buenas practicas que he encontrado en el grupo, hice el
siguiente Procedimiento Almacenad:


CREATE PROCEDURE dbo.Elemento_C
@IdElementos bigint=Null,
@Parent bigint = Null,
@TipoElemento bigint = Null

AS

SELECT
[IdElementos],
[IdTipoElemento],
[Nombre],
[Parent],
[Orden],
[URL],
[UsuarioCreacion],
[FechaCreacion],
[UsuarioModificacion],
[FechaModificacion],
[Activo]
FROM
[Elemento]
WHERE
[IdElementos]= IsNull(@IdElementos, IdElementos)
and [Parent] = IsNull(@Parent, Parent)
and [IdTipoElemento] = IsNull(@TipoElemento, [IdTipoElemento])
GO

El problema se presenta cuando uno de los campos es Null, por ejemplo:
Parent, el Sp no me devuelve ningun registro.

¿Hay alguna forma de solucionarlo?

Gracias.

Pablo

+++


Preguntas similares