まず、プロシージャ内で作成されたローカル一時テーブルは、プロシージャが終了すると削除されます。 Create Table の BOL から :
データ アクセス コードが適切に接続を開き、ストアド プロシージャを呼び出してから接続を閉じる場合、プロシージャで作成された一時テーブルは事実上破棄されます。
別の点を持ち出すために「効果的に」と言います。手順の最後に一時テーブルを削除することはお勧めしませんが、一時テーブルを作成する直前にチェックを追加し、存在する場合は削除します (例:if object_id('tempdb..#Foo') is not null
)。最後に一時テーブルを削除することに対する議論は、Drop ステートメントを呼び出すことで、プロシージャが終了するのを待っている間に、その場でテーブルを破棄するために SQL Server にリソースを消費させることになるということです。代わりに、範囲外に行かせた場合、プロシージャはすぐに終了し、SQL Server が選択した時点でテーブルを破棄します。