Insertar SQL en la tabla temporal en bloques If y Else
Estoy tratando de llenar una tabla temporal basada en el resultado de una condición en SQL 2005. La tabla temporal tendrá la misma estructura de cualquier manera, pero se completará usando una consulta diferente dependiendo de la condición. El script de ejemplo simplificado a continuación falla al verificar la sintaxis delELSE
bloquearINSERT INTO
con el error de:
Ya hay un objeto llamado '#MyTestTable' en la base de datos.
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
Podría crear la tabla temporal antes delIF/ELSE
declaración y luego simplemente hacerINSERT SELECT
declaraciones en los bloques condicionales, pero la tabla tendrá muchas columnas y estaba tratando de ser eficiente al respecto. ¿Es esa la única opción? ¿O hay alguna forma de hacer que esto funcione?
Gracias Matt