Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Différence entre les tables temporaires locales et globales dans SQL Server

Lorsque vous créez une table temporaire dans SQL Server, vous avez la possibilité d'en faire une table temporaire locale ou globale.

Voici un bref aperçu des principales différences entre les tables temporaires locales et les tables temporaires globales.

Nom

  • Les noms des tables temporaires locales commencent par un seul signe dièse (# ). Par exemple, #MyTable .
  • Les tables temporaires locales reçoivent également un suffixe numérique généré par le système ajouté au nom. Celui-ci est généré automatiquement par SQL Server. Cela permet à plusieurs sessions de créer des tables temporaires locales avec le même nom sans provoquer de conflits de noms. Cependant, les utilisateurs peuvent toujours interroger la table sans avoir à connaître le suffixe.
  • Les noms des tables temporaires globales commencent par un double signe dièse (## ). Par exemple, ##MyTable .
  • Les tables temporaires globales ne sont pas ajouté avec un suffixe comme avec les tables temporaires locales.

Visibilité

  • Les tables temporaires locales ne sont visibles que dans la session en cours.
  • Les tables temporaires globales sont visibles pour toutes les sessions.

Durée de vie

  • Les tables temporaires locales sont automatiquement supprimées à la fin de la session en cours. Une table temporaire locale créée dans une procédure stockée est supprimée automatiquement lorsque la procédure stockée est terminée. La table peut être référencée par n'importe quelle procédure stockée imbriquée exécutée par la procédure stockée qui a créé la table. La table ne peut pas être référencée par le processus qui a appelé la procédure stockée qui a créé la table.
  • Les tables temporaires globales sont automatiquement supprimées lorsque la session qui a créé la table se termine et que toutes les autres tâches ont cessé de les référencer. L'association entre une tâche et une table n'est maintenue que pendant la durée de vie d'une seule instruction T-SQL. Par conséquent, une table temporaire globale est supprimée à la fin de la dernière instruction T-SQL qui faisait activement référence à la table lorsque la session de création s'est terminée.