Erro estranho usando instruções IF IF / ELSE

Estou tentando criar uma tabela temporária dependente do valor de um parâmetro de cenário e usando a seguinte instrução IF, mas obtendo o erro abaixo:

    IF @indexName = 'A'
        begin select top 400 * into #temp from #pretemp order by EMRev desc end
    ELSE IF @indexName = 'B'
        begin select top 75 * into #temp from #pretemp order by EMRev desc end
    ELSE IF @indexName = 'C'
        begin select top 300 * into #temp from #pretemp order by EMRev desc end
    ELSE 
        begin select top 100 * into #temp from #pretemp order by EMRev desc end

Msg 2714, nível 16, estado 1, linha 179 Já existe um objeto chamado '#temp' no banco de dados. Msg 2714, nível 16, estado 1, linha 181 Já existe um objeto chamado '#temp' no banco de dados. Msg 2714, nível 16, estado 1, linha 183 Já existe um objeto chamado '#temp' no banco de dados.

Tenho certeza de que a instrução IF funciona com base na variável @indexName (substituindo a instrução block por algo simples (por exemplo, 'select @indexName'), o programa é executado corretamente).

Alguma idéia sobre o que está causando esse erro?

questionAnswers(2)

yourAnswerToTheQuestion