Dokázali byste něco takového použít?
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)
Dva body:Možná zjistíte, že budete muset vytvořit dočasnou tabulku bez použití dynamického SQL a poté upravit příkaz select, aby se tabulka změnila; je to proto, aby tabulka existovala v aktuálním kontextu – pokud je příkaz create v dynamice, můžete dostat chybu.
Nerad používám dynamické sql, jako je tento - pokud byste mohli později použít pivot k vrácení sloupců, mohla by to být lepší volba (nejsem si jistý, zda je to v tomto případě možné).