Мне нужно было иметь возможность воссоздать временную таблицу в скрипте, поэтому я использовал этот код для генерации части столбцов оператора CREATE TABLE:
SELECT char(9) + '[' + c.column_name + '] ' + c.data_type
+ CASE WHEN c.data_type IN ('decimal')
THEN isnull('(' + convert(varchar, c.numeric_precision) + ', ' + convert(varchar, c.numeric_scale) + ')', '')
ELSE '' END
+ CASE WHEN c.IS_NULLABLE = 'YES' THEN ' NULL' ELSE '' END
+ ','
From tempdb.INFORMATION_SCHEMA.COLUMNS c
WHERE TABLE_NAME LIKE '#myTempTable%'
Я не проверял все типы данных sql, но это работало для int, float, datetime, money и bit.
Также - ApexSQL Complete (бесплатно) имеет приятную функцию, позволяющую экспортировать результаты сетки в оператор Insert Into
. Я использовал это, чтобы загрузить эту созданную временную таблицу в моем скрипте.
![ApexSQL Copy Results As Insert into statement](https://i.stack.imgur.com/n8tqj.png)