Lors de l'utilisation de tables temporaires dans les procédures stockées SQL Server, la pratique préférée est de :
1) Créer la table temporaire, la peupler, l'utiliser puis la supprimer
CREATE TABLE #MyTable ( ... )
-- Faire des choses
DROP TABLE #MyTable
2) Vérifier si elle existe, la supprimer si c'est le cas, puis la créer et l'utiliser
IF object_id('tempdb..#MyTable') IS NOT NULL
DROP TABLE #MyTable
CREATE TABLE #MyTable ( ... )
3) La créer et laisser SQL Server la nettoyer lorsqu'elle sort du scope
CREATE TABLE #MyTable ( ... )
-- Faire des choses
J'ai lu dans cette réponse et ses commentaires associés, que cela peut être utile dans des situations où la table temporaire est réutilisée et que SQL Server va la tronquer mais conserver la structure pour gagner du temps.
Ma procédure stockée est probablement appelée assez fréquemment, mais elle ne contient que quelques colonnes, donc je ne sais pas vraiment à quel point cela peut être avantageux dans ma situation.