Получить структуру временной таблицы (например, создать SQL-скрипт) и очистить временную таблицу для текущего экземпляра
Как получить структуру временной таблицы, а затем удалить временную таблицу. Есть ли sp_helptext для временных таблиц? Наконец, можно ли удалить временную таблицу в том же сеансе или окне запроса?
Пример:
select *
into #myTempTable -- creates a new temp table
from tMyTable -- some table in your database
tempdb..sp_help #myTempTable
5 ответов
вам нужно использовать кавычки вокруг имени временной таблицы, и вы можете удалить временную таблицу сразу после использования drop table ...
.
select *
into #myTempTable -- creates a new temp table
from tMyTable -- some table in your database
exec tempdb..sp_help '#myTempTable'
drop table #myTempTable
пока я знаю, что для таблиц нет SP_HelpText. Попробуйте это:
Select * From tempdb.sys.columns Where object_id=OBJECT_ID('tempdb.dbo.#myTempTable');
мне нужно было воссоздать временную таблицу в скрипте, поэтому я использовал этот код, генерирующий часть столбцов инструкции 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 Полностью (бесплатно) имеет хорошую функцию, где вы можете экспортировать результаты сетки в Insert Into
заявление. Я использовал это, чтобы загрузить эту созданную временную таблицу в мой скрипт.