Добавлении в SQL запрос условия из обьявленного ранее выражения c параметром в переменной

Задача в добавлении в SQL запрос условия из обьявленного ранее выражения c параметром в переменной. Cмог решить эту задачу пока только через динамический sql (sp_executesql)

ВАРИАНТ1 - РАБОЧИЙ (через sp_executesql)

--объявляем переменные
DECLARE @wherecondition nvarchar(Max)
DECLARE @sqlcode nvarchar(Max)
--условие, которое нужно будет добавить в код
SET @wherecondition = 'and (Param2 IN (1,2))'
--создаем запрос

set @sqlcode = 'select * from sdol where (Kod < 10) ' + @wherecondition + ' order by Kod' 
--выполняем запрос
exec sp_executesql @sqlcode

Но в таком случае неудобно редактировать обьемный код-запрос в MS SQL Managment Studio, он просто не будет подсвечиваться

ВАРИАНТ2 - КАК ХОЧЕТСЯ СДЕЛАТЬ

Как можно добавить условие-выражение в sql-запрос без использования sp_executesql, чтобы получилось вроде такого:

--объявляем переменные:

DECLARE @wherecondition nvarchar(Max)
--условие, которое нужно будет добавить в код
SET @wherecondition = 'and (Param2 IN (1,2))'
--выполняем запрос с добавленным @wherecondition
select * from sdol where (Kod < 10) + @wherecondition + order by Kod

Естественно, так не будет работать, вопрос в том, как сделать добавление выражения из переменной без динамического sql (через sp_executesql) и передавать в этом выражении именно параметр, а не только значения.


Ответы (0 шт):