T-SQL: Parámetros opcionales en procedimientos almacenados usando ISNULL

Supongamos que tenemos que buscar en la una Tabla teniendo parámetros opcionales. Por ejemplo, tenemos una aplicación con una búsqueda avanzada donde el usuario no tiene que llenar todos los criterios de búsqueda. Esto lo podemos solucionar con un pequeño truco; usando la función ISNULL.

CREATE PROC Buscar
(
     @param1 INT = NULL,
     @param2 INT = NULL
)
AS
BEGIN
    SELECT columna1
    FROM tabla1
    WHERE columna1 = ISNULL(@param1, columna1)
      AND columna2 = ISNULL(@param2, columna2)
END

Si el primer parámetro en la función ISNULL es NULO, retorna el segundo parámetro, de lo contrario devuelve el valor del parámetro como tal.

Espero que os sirva de utilidad.


Puedes seguir los comentarios a través de RSS 2.0