Apakah Anda dapat menggunakan sesuatu seperti ini?
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)
Dua poin:Anda mungkin menemukan bahwa Anda perlu membuat tabel temp tanpa menggunakan sql dinamis, lalu menyesuaikan pernyataan pilih untuk mengubah tabel; ini agar tabel ada dalam konteks saat ini - jika pernyataan buat dalam dinamis, Anda mungkin mendapatkan kesalahan.
Saya tidak suka menggunakan sql dinamis seperti ini - jika nanti Anda dapat menggunakan pivot untuk mengembalikan kolom, itu mungkin opsi yang lebih baik (saya tidak yakin apakah mungkin dalam kasus ini).