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

Respuestas a la pregunta(7)

Su respuesta a la pregunta