Спасибо, это было полезно. Я решил использовать метод sp_ExecuteSQL из-за упомянутых потенциальных преимуществ производительности. У меня есть немного другое мнение, которое вы можете найти полезным.

у иметь возможность передать список параметров и игнорировать те, которые имеют значение NULL. Таким образом, запрос фактически притворяется, что фильтра нет, и игнорирует его.

Я делал это так:

(@thing IS NULL or Thing=@thing) 

Это правильно, и если так, будет ли это плохо? Кажется, это намного медленнее, чем создание SQL отдельно.

Какой оптимальный способ сделать это?

ИСПРАВЛЕНО! Смотри ответ Марка Гравелла. Таким образом, использование IS NULL много раз являетсябольшой хит производительности.

Ответы на вопрос(2)

Ваш ответ на вопрос