Добавлении в 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) и передавать в этом выражении именно параметр, а не только значения.