SQL Serverのストアドプロシージャで一時テーブルを使用する場合は、次の方法をお勧めします。
1)一時テーブルを作成し、データを入力して使用し、ドロップします
CREATE TABLE #MyTable ( ... )
-- Do stuff
DROP TABLE #MyTable
2)存在するかどうかを確認し、存在する場合はドロップしてから、作成して使用します
IF object_id('tempdb..#MyTable') IS NOT NULL
DROP TABLE #MyTable
CREATE TABLE #MyTable ( ... )
3)それを作成し、スコープ外になったときにSQLServerにクリーンアップさせます
CREATE TABLE #MyTable ( ... )
-- Do Stuff
この回答とそれに関連するコメントを読みました。これは、SQL Serverがテーブルを切り捨てるが、時間を節約するために構造を維持する一時テーブルが再利用される状況で役立つ可能性があります。
私のストアドプロシージャはかなり頻繁に呼び出される可能性がありますが、含まれている列は数個しかないため、これが私の状況で実際にどれほど有利かはわかりません。