Respondendo com 8 anos de atraso, mas estou surpreso que ninguém tenha pensado em:
select * into #MyTempTable from...
where 1=2
IF -- CONDITION HERE
insert into #MyTempTable select...
ELSE
insert into #MyTempTable select...
Simples, rápido e funciona. Nenhum sql dinâmico necessário