Het probleem is dat het bereik van uw tijdelijke tabel alleen bestaat binnen de exec()-instructie. U kunt uw tijdelijke tabel omzetten in een "algemene" tijdelijke tabel door 2 hekjes te gebruiken -> ##tempTable. Ik vraag me echter af waarom je een variabele @dynamicallyBuiltWhereClause gebruikt om je SQL-instructie te genereren.
Ik heb in het verleden gedaan wat u doet, maar heb meer succes gehad met het genereren van SQL vanuit de toepassing (met C# om mijn SQL te genereren).
U kunt ook naar tabelvariabelen kijken. Ik heb enkele vreemde gevallen gezien waarbij tijdelijke tabellen worden gebruikt waarbij een toepassing een verbinding opnieuw gebruikt en de tijdelijke tabel van de laatste query er nog steeds is.