Saresti in grado di utilizzare qualcosa del genere?
DECLARE @Tab VARCHAR(MAX)
SET @Tab = 'CREATE TABLE #Whatever ('
SELECT @Tab = @Tab + QUOTENAME(ColumnName) + ' INT NULL
,'
FROM @This
SELECT @Tab = SUBSTRING(@Tab,1,LEN(@Tab)-1) + ')'
PRINT @Tab
-- EXEC (@Tab)
Due punti:potresti scoprire che dovrai creare la tabella temporanea senza utilizzare sql dinamico, quindi regolare l'istruzione select per modificare la tabella; questo è così che la tabella esiste nel contesto corrente:se l'istruzione create è nella dinamica, potresti ricevere un errore.
Non mi piace usare sql dinamico in questo modo:se potessi utilizzare un pivot in seguito per restituire le colonne, potrebbe essere un'opzione migliore (non sono sicuro che sia possibile in questo caso).