Първо, локалните временни таблици, създадени в рамките на процедура, се премахват, след като процедурата приключи. От BOL на Create Table :
Ако вашият код за достъп до данни правилно отваря връзка, извиква съхранена процедура и след това затваря връзката, временната таблица, създадена в процедурата, е ефективно унищожена.
Казвам „ефективно“, за да повдигна друга точка. Не бих препоръчал премахване на временната таблица в края на вашата процедура, въпреки че бих добавил проверка точно преди да създам временната таблица и бих я премахнал, ако съществува (напр. if object_id('tempdb..#Foo') is not null
). Аргументът срещу отпадането на временната таблица в края е, че като извиквате оператора Drop, вие принуждавате SQL Server да изразходва ресурси, за да унищожи таблицата тогава и там, докато чакате вашата процедура да приключи. Ако вместо това я оставите да излезе извън обхвата, вашата процедура приключва незабавно и вие позволявате на SQL Server да унищожи таблицата във време по свой собствен избор.