Les tables temporaires SQL Server stockent les données temporairement. Vous pouvez effectuer les mêmes opérations, telles que SELECT, INSERT, DELETE et UPDATE, sur une table temporaire comme vous le feriez sur une table SQL normale.
Les tables temporaires résident dans la base de données tempdb et ne sont visibles que pendant la durée de la connexion. Lorsque vous mettez fin à la connexion, SQL Server supprime la table temporaire. Vous pouvez également le supprimer explicitement à tout moment.
Types de tables temporaires SQL Server
Il existe deux types de tables temporaires SQL Server: locales et globales.
Tableau des températures locales
Une table temporaire locale n'est visible que par la connexion qui l'a créée. Lorsque cette connexion se termine ou que l'utilisateur se déconnecte du serveur SQL exemple, une table temporaire locale est automatiquement supprimée.
Pour créer une table temporaire locale, utilisez un seul symbole dièse (#) au début du nom de la table avec l'instruction CREATE TABLE. Voici la syntaxe.
CRÉERTABLEAU#TempTable (
Colonne1 INT,
Colonne2 VARCHAR(50)
);
Par exemple, le code suivant crée une table temporaire appelée TempCustomer avec un champ de nom et d'e-mail.
CRÉERTABLEAU#TempClient (
ID entier NON NULL CLÉ PRIMAIRE
Nom complet VARCHAR(50),
E-mail VARCHAR(50)
);
Tableau des températures globales
Une table temporaire globale est une table temporaire visible par toutes les connexions et tous les utilisateurs. SQL Server le supprimera lorsque toutes les connexions et tous les utilisateurs faisant référence à la table seront déconnectés.
Pour créer une table temporaire globale, préfixez le nom de la table avec des hachages doubles (##) et utilisez l'instruction CREATE TABLE.
CRÉERTABLEAU##TableTemp (
Colonne1 INT,
Colonne2 VARCHAR(50)
);
Le code suivant crée une table temporaire globale nommée TempCustomer.
CRÉERTABLEAU##TempClient (
ID entier NON NULL CLÉ PRIMAIRE
Nom complet VARCHAR(50),
E-mail VARCHAR(50)
);
Ce code est similaire à l'exemple de la table temporaire locale, juste avec deux symboles de hachage au lieu d'un. Vous pouvez maintenant utiliser commandes SQL standards pour ajouter ou manipuler les données dans la table temporaire.
Comment supprimer une table temporaire
L'instance SQL Server supprime automatiquement une table temporaire lorsque tous les utilisateurs qui y font référence se sont déconnectés. En tant que meilleure pratique, vous devez toujours supprimer explicitement vos tables temporaires pour libérer la mémoire tempdb.
Pour supprimer une table temporaire, utilisez l'instruction DROP TABLE IF EXISTS suivie du nom de la table temporaire.
Voici comment supprimer la table #TempCustomer :
GOUTTETABLEAUSIEXISTE#TempClient
Utilisez le même code mais échangez le nom de la table pour supprimer une table temporaire globale.
GOUTTETABLEAUSIEXISTE##TempClient
Utilisations typiques des tables temporaires SQL
Les tables temporaires sont utiles lorsque vous avez besoin de stocker des résultats intermédiaires de requêtes complexes que vous devez traiter ultérieurement. Par exemple, lors de la création de rapports, vous devrez peut-être créer des tables temporaires pour stocker les résultats des requêtes de plusieurs bases de données. Vous pouvez ensuite générer le rapport final en exécutant une requête sur les tables temporaires.
Un autre scénario dans lequel les tables temporaires sont utiles est lorsque vous avez besoin des résultats de la requête d'une table pour exécuter une autre requête. Vous pouvez stocker les résultats dans une table temporaire, puis les référencer dans votre nouvelle requête. Essentiellement, vous utilisez la table temporaire comme une table de travail ou une table tampon pour contenir les données dont vous avez besoin pour effectuer une tâche spécifique.
Utilisation de tables temporaires dans SQL Server
Vous pouvez utiliser des tables temporaires SQL Server pour stocker et traiter temporairement des données. Il existe deux types de tables temporaires, locales et globales. Une table temporaire locale est visible pour la connexion dans laquelle elle est créée, tandis qu'une table temporaire globale est visible sur toutes les connexions.
Les tables temporaires sont automatiquement détruites lorsque vous vous déconnectez de l'instance de serveur. Cependant, pour économiser de la mémoire, vous devez toujours les déposer après utilisation.