2011-10-25 25 views
-1

如何添加我们有And子句的字符串。但是,当我们应用的是字符串,查询此字符串会查询处理并满足所有的条件
我有一个查询,如: -如何将字符串转换为sql服务器中的查询

 
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 

我也不想使用执行或执行函数运行这个查询。 我要添加字符串与查询如上所述,但这将无法正常工作。 我在where子句后添加的变量被视为字符串,但我希望该字符串被视为Query。请帮忙。我也不想使用execute或exec函数来运行这个查询。

+1

你将不得不使用'EXEC' – leppie

+3

-1选择动态SQL但随后说:“不EXEC” 。 – gbn

回答

1

以下方法正常工作。但要特别小心,因为如果用户提供输入,它可能会受到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

我不想使用execute或exec函数来运行此查询。 –

+0

在这种情况下,请在Java/.Net中构建查询,然后进行准备并使用它。 –

0

使用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) 
相关问题