Ungerader Fehler bei der Verwendung von IF / ELSE IF-Anweisungen

Ich versuche, eine temporäre Tabelle zu erstellen, die vom Wert eines Szenario-Parameters abhängig ist und die folgende IF-Anweisung verwendet, aber den folgenden Fehler anzeigt:

    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

Meldung 2714, Ebene 16, Status 1, Zeile 179 In der Datenbank befindet sich bereits ein Objekt mit dem Namen '#temp'. Meldung 2714, Ebene 16, Status 1, Zeile 181 Die Datenbank enthält bereits ein Objekt mit dem Namen '#temp'. Meldung 2714, Ebene 16, Status 1, Zeile 183 Die Datenbank enthält bereits ein Objekt mit dem Namen '#temp'.

Ich bin sicher, dass die IF-Anweisung auf der @ indexName-Variablen basiert (wenn Sie die block-Anweisung durch eine einfache ersetzen (z. B. 'select @ indexName'), funktioniert das Programm einwandfrei).

Irgendwelche Ideen, was diesen Fehler verursacht?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage