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.

