Først slettes lokale midlertidige tabeller, der er oprettet i en procedure, når proceduren er færdig. Fra BOL on Create Table :
Hvis din dataadgangskode åbner en forbindelse korrekt, kalder en lagret procedure og derefter lukker forbindelsen, oprettes den midlertidige tabel i proceduren, og den bliver effektivt ødelagt.
Jeg siger "effektivt" for at bringe et andet punkt op. Jeg vil ikke anbefale at droppe temp-tabellen i slutningen af din procedure, selvom jeg ville tilføje en kontrol lige før jeg oprettede temp-tabellen og droppe den, hvis den findes (f.eks. if object_id('tempdb..#Foo') is not null
). Argumentet imod at droppe temp-tabellen i slutningen er, at ved at kalde Drop-sætningen tvinger du SQL Server til at bruge ressourcer på at ødelægge tabellen der og da, mens du venter på, at din procedure slutter. Hvis du i stedet lader det gå uden for scope, afsluttes din procedure med det samme, og du lader SQL Server ødelægge bordet på et tidspunkt efter eget valg.