IF OBJECT_ID('tempdb..#tempTable2') IS NOT NULL
DROP TABLE #tempTable2;
IF @someCondition is not null
BEGIN
SELECT * INTO #tempTable2 FROM Table; --No problem, no error
END
ELSE
BEGIN
SELECT * INTO #tempTable2 FROM Table; --Execution failed
END
メッセージ2714、レベル16、状態1、行197データベースに '#tempTable2' という名前のオブジェクトがすでに存在しています。Tempテーブルに選択すると、個別のIF条件に存在できませんか?
私は上記の理由を知ることができますか?手順1.最初のIFセクションのクエリが実行されていないので、#tempTable2を作成しないでください。
あなたは他の部分に 'ドロップtable'を追加することができます。なぜこのようなことが起きるのか分かりません。おそらく、テーブルの作成は、SQL Serverが文を解析するときに実行されます。** Before **は実行されているため、事前に条件の結果を認識しません。 –
'IF'セクションに' drop table'コマンドを入れてテストしましたが、うまくいきません。 –