El siguiente enfoque funciona bien. pero tenga mucho cuidado ya que es susceptible a la inyección de sql si el usuario proporciona la entrada.
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)