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