Först tas lokala temporära tabeller som skapats inom en procedur bort när proceduren är klar. Från BOL på Skapa tabell :
Om din dataåtkomstkod öppnar en anslutning korrekt, anropar en lagrad procedur och sedan stänger anslutningen, skapas temptabellen i proceduren och förstörs effektivt.
Jag säger "effektivt" för att ta upp en annan punkt. Jag skulle inte rekommendera att ta bort temptabellen i slutet av din procedur även om jag skulle lägga till en kontroll precis innan jag skapade temptabellen och släppa den om den finns (t.ex. if object_id('tempdb..#Foo') is not null
). Argumentet mot att ta bort temp-tabellen i slutet är att genom att anropa Drop-satsen tvingar du SQL Server att förbruka resurser för att förstöra tabellen då och där medan du väntar på att din procedur ska avslutas. Om du istället låter den gå utanför räckvidden, avslutas din procedur omedelbart och du låter SQL Server förstöra tabellen vid en tidpunkt som den själv väljer.