Мне нужно написать сохраненный процесс для страницы поиска. Страница поиска позволяет пользователю выбрать «Любой» для некоторых фильтров, и каждый фильтр отображается на столбец в моей БД.
Как лучше всего подойти к этому в моем хранимом процессе:
(1) Должен ли я использовать динамический SQL (sp_executesql) и построить запрос на основе выбранных фильтров? Повлияет ли это на кэширование плана выполнения?
(2) Должен ли я перевести «Any» во все возможные значения и использовать то же самое в статическом запросе?
(3) Стоит ли сохранять результаты во временной таблице с использованием обязательных фильтров, а затем применять дополнительные фильтры (поддерживающие ЛЮБУЮ опцию) по одному к этим результатам?
(4) Любой другой подход, о котором я не думал?