L'approccio seguente funziona bene. ma fai molta attenzione in quanto è suscettibile all'iniezione di sql se l'utente fornisce l'input.
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)