Как преобразовать строку в запрос на сервере SQL - PullRequest
0 голосов
/ 25 октября 2011

Как добавить строку, в которой мы имеем предложение And.но когда мы применяем эту строку, запрос которой эта строка будет обрабатываться как Query и выполнять все условия
У меня есть запрос вроде: -

Declare @WhereQuery varchar(max)

SET @WhereQuery='class=''BCA'' and RollNo=10 AND ID IN (SELECT ID FROM StudentMaster WHERE MARKS > 50)'

SELECT  * into #TempTable1
from StudentMaster 
where @WhereQuery

Я также не хочу использовать execute или execфункция для запуска этого запроса.Я собираюсь добавить строку с упоминанием запроса, как указано выше, но это не будет работать должным образом.Переменная, которую я добавил после предложения where, рассматривается как строка, но я хочу, чтобы эта строка считалась Query.Пожалуйста помоги.Я также не хочу использовать функцию execute или exec для запуска этого запроса.

Ответы [ 2 ]

1 голос
/ 25 октября 2011

Приведенный ниже подход работает отлично. но будьте особенно осторожны, так как он подвержен SQL-инъекции, если пользователь вводит данные.

create table #TempTable1 (.....)

Declare @selectQuery varchar(max)
set @selectQuery = 'SELECT * into #TempTable1 from StudentMaster '

Declare @WhereQuery varchar(max)

SET @WhereQuery='where class=''BCA'' and RollNo=10 AND ID IN (SELECT ID FROM StudentMaster WHERE MARKS > 50)'

exec (@selectQuery + @WhereQuery)
0 голосов
/ 25 октября 2011

У вас есть для использования EXEC или sp_exeutesql , если вы хотите для запуска динамического SQL.

Если вы не хотите, чтобы использовал EXEC, тогда пишите нединамические запросы:

SELECT  * into #TempTable1
from StudentMaster 
where class='BCA' and RollNo=10 AND ID IN (SELECT ID FROM StudentMaster WHERE MARKS > 50)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...