La réponse de Pure.Krome montre comment utiliser une variable de table au lieu d'une table #temp. Si vous voulez vraiment une table #temp basée sur un type de table connu (sans avoir à connaître les noms/définitions des colonnes), vous pouvez dire :
DECLARE @d usr.NameList;
SELECT * INTO #superBrand FROM @d;
Maintenant, #superBrand
doit correspondre à la structure de table du type de table, moins les contraintes (et les index secondaires légèrement utiles, à partir de SQL Server 2014).
Bien sûr, le reste de votre code qui remplit ensuite la table #temp va devoir connaître la structure. Alors, à quoi sert exactement de déclarer une table #temp avec la même structure qu'un type de table ?