Вставка SQL в временную таблицу в блоках If и Else
Я пытаюсь заполнить временную таблицу на основе результата условия в 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
операторы в условных блоках, но в таблице будет много столбцов, и я пытался быть эффективными в этом. Это единственный вариант? Или есть какой-нибудь способ заставить это работать?
Спасибо Мэтт