SQL Insert Into Temp Table в обоих блоках If и Else

Я пытаюсь заполнить временную таблицу на основе результата условия в SQL 2005. Временная таблица будет имеют одинаковую структуру в любом случае, но будут заполнены с использованием другого запроса в зависимости от условия. В приведенном ниже упрощенном примере сценария происходит сбой при проверке синтаксиса блока ELSE INSERT INTO с ошибкой:

Уже существует объект с именем В любом случае временная таблица будет иметь одинаковую структуру, но будет заполняться с использованием другого запроса в зависимости от ...

Я пытаюсь заполнить временную таблицу на основе результата условия в SQL 2005. Временная таблица в любом случае будет иметь одинаковую структуру, но будет заполняться с использованием другого запроса в зависимости от условия. В приведенном ниже упрощенном примере сценария происходит сбой при проверке синтаксиса блока ELSE INSERT INTO с ошибкой:

Уже существует объект с именем В любом случае временная таблица будет иметь одинаковую структуру, но будет заполняться с использованием другого запроса в зависимости от ...

Я пытаюсь заполнить временную таблицу на основе результата условия в SQL 2005. Временная таблица в любом случае будет иметь одинаковую структуру, но будет заполняться с использованием другого запроса в зависимости от условия. В приведенном ниже упрощенном примере сценария происходит сбой при проверке синтаксиса блока ELSE INSERT INTO с ошибкой:

Уже существует объект с именем '#MyTestTable' в базе данных.

DECLARE @Id int
SET @Id = 1

IF OBJECT_ID('tempdb..#MyTestTable') IS NOT NULL DROP TABLE #MyTestTable

IF (@Id = 2) BEGIN 
    SELECT 'ABC' AS Letters
    INTO #MyTestTable;
END ELSE BEGIN
    SELECT 'XYZ' AS Letters
    INTO #MyTestTable;
END

Я мог бы создать временную таблицу перед оператором IF / ELSE , а затем просто выполнить операторы INSERT SELECT в условных блоках, но таблица будет много столбцов, и я пытался действовать эффективно. Это единственный вариант? Или есть способ заставить это работать?

Спасибо, Matt

12
задан CuppM 11 November 2010 в 15:23
поделиться