シナリオパラメータの値に依存する一時テーブルを作成しようとしていますが、次のIFステートメントを使用していますが、以下のエラーが発生します。
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
メッセージ2714、レベル16、状態1、行179データベースにはすでに「#temp」という名前のオブジェクトがあります。メッセージ2714、レベル16、状態1、行181データベースにはすでに「#temp」という名前のオブジェクトがあります。メッセージ2714、レベル16、状態1、行183データベースにはすでに「#temp」という名前のオブジェクトがあります。
IFステートメントは@indexName変数に基づいて機能すると確信しています(ブロックステートメントを単純なもの(たとえば、'select @indexName')に置き換えると、プログラムは正常に実行されます)。
このエラーの原因について何か考えはありますか?