2011-10-25 46 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) 
相關問題