SQL Insert Into Temp Table in beiden If-und Else-Blöcken

Ich versuche, füllen Sie eine temp-Tabelle, basierend auf dem Ergebnis der Bedingung in SQL 2005. Die temp-Tabelle haben die gleiche Struktur, aber wird aufgefüllt werden, mit einer anderen Abfrage, je nach Zustand. Das vereinfachte Beispiel-script unten scheitert in der syntax-Prüfung der ELSE block INSERT INTO mit dem Fehler:

Es ist bereits ein Objekt mit dem Namen
'#MyTestTable " in der Datenbank.

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

Ich könnte die temp-Tabelle vor den IF/ELSE Anweisung und nur dann nicht INSERT SELECT Aussagen in den Bedingungen blockiert, aber die Tabelle viele Spalten und ich war versucht, effizient zu sein darüber. Ist das die einzige option? Oder gibt es eine Möglichkeit, diese Arbeit zu machen?

Dank,
Matt

InformationsquelleAutor CuppM | 2010-11-11
Schreibe einen Kommentar