Risposta di Pure.Krome mostra come utilizzare una variabile di tabella invece di una tabella #temp. Se vuoi davvero una tabella #temp basata su un tipo di tabella noto (senza dover conoscere i nomi/le definizioni delle colonne), puoi dire:
DECLARE @d usr.NameList;
SELECT * INTO #superBrand FROM @d;
Ora, #superBrand
deve corrispondere alla struttura della tabella del tipo di tabella, meno i vincoli (e gli indici secondari marginalmente utili, a partire da SQL Server 2014).
Naturalmente, il resto del codice che poi popola la tabella #temp dovrà conoscere la struttura. Quindi, qual è esattamente lo scopo di dichiarare una tabella #temp con la stessa struttura di un tipo di tabella?