Para dejar mas claro plantearemos un modelo de datos en el que tenemos almacenado en tres tablas la siguiente información: Departamento con un listado de departamentos, Municipio contiene un listado de municipios que están relacionados la tabla Departamentos y finalmente una tabla llamada Estudiante que contiene un listado de estudiantes los cuales residen en un municipio. El diagrama del modelo de datos seria mas o menos el siguiente.
Ahora si realizamos un procedimiento almacenado que al ejecutarlo nos retorne el resultado de todos los estudiante con su respectivo nombre, municipio y departamento donde reside. El resultado de datos seria mas o menos el siguiente .
La consulta SQL requerida para generar la información anteriormente presentada seria la siguiente.
Ahora bien, imaginemos que queremos aplicar al mismo conjunto de datos varios filtros y que estos a su vez sean opcionales, para ello crearemos un procedimiento almacenado y la estructura seria la siguiente.
Ahora si lo queremos podemos ejecutar nuestro procedimiento ya sea teniendo como filtro en las búsquedas el DepartamentoID, MunicipoID o DepartamentoID y MunipioID. La instrucción para ejecutar nuestro procedimiento ConsultarEstudiantes es el siguiente




