2016-07-28 7 views
0

"データベースに既に#DateRange"というエラーが表示されます。私が望むのは、#daterange2にデータがある場合は、そのユニオンを行い、そうでなければ#DateRange1からのみ選択します。しかし、宛先テーブルは両方とも#DateRangeテーブルにあります。ここで が私のコードです:SQLサーバー:存在する場合はテーブルAにxを挿入し、そうでない場合はテーブルAにyを挿入します

IF exists (SELECT * FROM #DateRange2) 
    SELECT * INTO #DateRange 
    FROM 
    (SELECT * FROM 
     #DateRange1 
    UNION 
    SELECT * FROM 
     #DateRange2 
    ) a 
ELSE 
    SELECT * INTO #DateRange 
    FROM 
     #DateRange1 

答えて

0

ええと、なぜ全く条件ロジックを気に?ただしてください:

2番目のテーブルに行がない場合は、何も挿入されません。

また、実際にUNIONが必要かどうかを確認してください。一般的には、UNION ALLが優先されます。重複を削除するオーバーヘッドが本当に発生しない限り、これは好ましくありません。

+0

#daterange2が存在しない場合、組合は動作しません。 –

+0

@JaneZeng。 。 。どちらもあなたの 'if'ステートメントはありません。 –

関連する問題