Il problema è che l'ambito della tua tabella temporanea esiste solo all'interno dell'istruzione exec(). Puoi trasformare la tua tabella temporanea in una tabella temporanea "globale" usando 2 segni di hash -> ##tempTable. Tuttavia, mi chiedo perché stai usando una variabile @dynamicallyBuiltWhereClause per generare la tua istruzione SQL.
Ho fatto quello che stai facendo in passato, ma ho avuto più successo generando SQL dall'applicazione (usando C# per generare il mio SQL).
Inoltre, potresti voler esaminare le variabili di tabella. Ho visto alcuni strani casi di utilizzo di tabelle temporanee in cui un'applicazione riutilizza una connessione e la tabella temporanea dell'ultima query è ancora lì.