2012-01-09 6 views
3

У меня довольно сложный оператор SELECT в хранимой процедуре, которую я обновляю, чтобы вставлять строки из таблицы выбора в таблицу temp. Чтобы определить временную таблицу, мне нужно знать тип данных каждого выбранного элемента.Есть ли автоматизированный способ создания временной таблицы в SQL Server

Есть ли простой способ (сценарий), который я могу использовать для определения типов данных и структуры таблицы temp вместо того, чтобы идти в определении каждой таблицы в выборе, чтобы узнать, что это такое?

PS: Я не могу использовать общее табличное выражение, как мне нужно, чтобы использовать эту временную таблицу несколько раз в прок

+2

Есть ли какой-то причине вы не можете просто использовать 'ВЫБРАТЬ INTO'? – JNK

+0

Мой вопрос о том, как определить таблицу '# temp' – DotnetDude

+0

@DotnetDude: В этом суть. Когда вы 'SELECT INTO', вам не нужно предопределять таблицу и ее столбцы. –

ответ

5
SELECT 
    blah 
INTO 
    #temp 
FROM 
    wibble 

blah и wibble не секрет синтаксиса. Пожалуйста, замените их с вашим собственным SQL :)

+0

Мой вопрос - это простой способ объявить таблицу '# temp'. Когда я объявляю это, мне нужен тип данных того, что возвращает select. Для довольно сложного 'SELECT', который выбирает из нескольких таблиц, мне нужно открыть каждое определение таблицы, чтобы узнать, какой тип данных. – DotnetDude

+2

@DotnetDude - создает таблицу без ее объявления/создания. Как вы просили :) Это * не * 'INSERT INTO #temp SELECT blah FROM wibble', который требует, чтобы таблица уже существовала. – MatBailie

+0

Могу ли я сделать SELECT INTO с переменной таблицы, объявленной с помощью 'DECLARE @tmpTable TABLE'? – DotnetDude

0

SELECT * INTO #temp ОТ TABLE1

Все столбцы в таблице 1 попадает в вашу временную таблицу Теперь

+0

Plaese отформатируйте свой код в своем ответе –

Смежные вопросы