Respondí con 8 años de retraso, pero me sorprende que nadie haya pensado en:
select * into #MyTempTable from...
where 1=2
IF -- CONDITION HERE
insert into #MyTempTable select...
ELSE
insert into #MyTempTable select...
Simple, rápido y funciona. No se necesita sql dinámico