Consulta a través de procedimiento almacenado

08/02/2010 - 16:54 por Alberto | Informe spam
Estoy haciendo una consulta sencilla sobre una única tabla empleando un
procedimiento almacenado.

Solo intervienen tres parámetros: @IDProveedor (código de proveedor),
@FechaDesde y @FechaHasta. En la tabla tengo el código del proveedor y
un campo llamado FechaEntrada.

El problema es que se pueden hacer tres tipos de consultas:
- indicando solo el código del proveedor.
- indicando solo fecha desde y fecha hasta
- indicando código de proveedor y las fechas desde y fecha hasta.

En la cabecera del procedimiento almacenado declaro los parámetros así:
@IDProveedor smallint = NULL,
@FechaDesde smallDateTime = NULL,
@FechaHasta smallDateTime = NULL

Me pararece un poco fuerte hacer un if dentro del procedimiento con
cuatro ramas: tres para los casos que comentaba antes y otro para el
caso error (es decir, que vengan todos los parámetros con NULL).

El Where de la select del tercer caso la estoy haciendo así:

Where IDProveedor = @IDProveedor and
FechaEntrada >= @FechaDesde and
FechaEntrada <= @FechaHasta

¿Tengo un modo mejor de solucionarlo que haciendo el if con las cuatro
ramas? Muchas gracias.
 

Leer las respuestas

#1 Gustavo Cantero
08/02/2010 - 17:08 | Informe spam
Alberto:
No podrías simplemente hacer tres procedimientos? Si tu
respuesta es no, entonces creo que lo mejor sería hacer los IFs.
Saludos.

Gustavo A. Cantero
Scientia® Soluciones Informáticas
MCP - MCSD - MCTS - MCPD
http://www.scientia.com.ar
http://www.programandoamedianoche.com
http://foro.scientia.com.ar


From: Alberto [mailto:]
Posted At: lunes, 08 de febrero de 2010 12:54 p.m.
Posted To: microsoft.public.es.sqlserver
Conversation: Consulta a través de procedimiento almacenado
Subject: Consulta a través de procedimiento almacenado

Estoy haciendo una consulta sencilla sobre una única tabla empleando un
procedimiento almacenado.

Solo intervienen tres parámetros: @IDProveedor (código de proveedor),
@FechaDesde y @FechaHasta. En la tabla tengo el código del proveedor y
un campo llamado FechaEntrada.

El problema es que se pueden hacer tres tipos de consultas:
- indicando solo el código del proveedor.
- indicando solo fecha desde y fecha hasta
- indicando código de proveedor y las fechas desde y fecha hasta.

En la cabecera del procedimiento almacenado declaro los parámetros así:
@IDProveedor smallint = NULL,
@FechaDesde smallDateTime = NULL,
@FechaHasta smallDateTime = NULL

Me pararece un poco fuerte hacer un if dentro del procedimiento con
cuatro ramas: tres para los casos que comentaba antes y otro para el
caso error (es decir, que vengan todos los parámetros con NULL).

El Where de la select del tercer caso la estoy haciendo así:

Where IDProveedor = @IDProveedor and
FechaEntrada >= @FechaDesde and
FechaEntrada <= @FechaHasta

¿Tengo un modo mejor de solucionarlo que haciendo el if con las cuatro
ramas? Muchas gracias.

Preguntas similares