Les tables temporaires locales (commençant par #) sont limitées à votre session ; les autres sessions, même à partir de la même chaîne utilisateur/connexion, ne peuvent pas les voir. Les règles de durée de vie varient selon que la table temporaire locale a été créée dans une procédure stockée :
- Une table temporaire locale créée dans une procédure stockée est supprimée à la fin de la procédure ; les autres procédures stockées ou le processus appelant ne peuvent pas les voir.
- Les autres tables temporaires locales sont supprimées à la fin de la session.
Les tables temporaires globales (commençant par ##) sont partagées entre les sessions. Ils sont supprimés lorsque :
- La session qui les a créés se termine
- ET aucune autre session n'y fait référence
Cette commande peut être pratique pour voir quelles tables temporaires existent :
select TABLE_NAME from tempdb.information_schema.tables
Et c'est pratique pour supprimer des tables temporaires si vous n'êtes pas sûr qu'elles existent :
if object_id('tempdb..#SoTest') is not null drop table #SoTest
Consultez cet article MSDN pour plus d'informations.