Tengo un formulario donde los usuarios pueden especificar varios parámetros para explorar algunos datos (estado, fecha, etc.).Procedimiento almacenado con parámetros "DONDE" opcionales
puedo producir una consulta que es:
SELECT * FROM table WHERE:
status_id = 3
date = <some date>
other_parameter = <value>
etc. Cada WHERE
es opcional (que puede seleccionar todas las filas con status = 3
, o todas las filas con date = 10/10/1980
, o todas las filas con status = 3 AND date = 10/10/1980
etc.)
Dado un gran número de parámetros, todos opcionales, ¿cuál es la mejor manera de compensar un procedimiento almacenado dinámico?
Estoy trabajando en varios DB, tales como: MySQL, Oracle y SQLServer.
Esto no permite que todos los parámetros sean opcionales. En este ejemplo, debe pasar @status_id. Incluso si es nulo, debe pasar nulo para que se ejecute. – Eppz
Puede proporcionar un valor predeterminado para los parámetros en MS SQL Server. No sé acerca de MySQL –
Solo tenga en cuenta que, dependiendo de su RDBMS y de cómo almacena en caché los planes de consulta, es posible que no obtenga el mejor rendimiento posible con este método. –