Réponse avec 8 ans de retard, mais je suis surpris que personne n'y ait pensé :
select * into #MyTempTable from...
where 1=2
IF -- CONDITION HERE
insert into #MyTempTable select...
ELSE
insert into #MyTempTable select...
Simple, rapide et ça marche. Pas besoin de sql dynamique