Microsoft SQL Server
Utilisation de la table TEMP
Recherche…
Remarques
Les tables temporaires sont vraiment très utiles.
La table peut être créée à l'exécution et peut effectuer toutes les opérations effectuées dans une table normale.
Ces tables sont créées dans une base de données tempdb.
Utilisé quand?
Nous devons faire des opérations de jointure complexes.
Nous effectuons un grand nombre de manipulations de lignes dans les procédures stockées.
Peut remplacer l'utilisation du curseur.
Augmente ainsi la performance.
Table Temp locale
Sera disponible jusqu'à ce que la connexion en cours persiste pour l'utilisateur.
Supprimé automatiquement lorsque l'utilisateur se déconnecte.
Le nom devrait commencer par # (#temp)
CREATE TABLE #LocalTempTable( StudentID int, StudentName varchar(50), StudentAddress varchar(150))
insert into #LocalTempTable values ( 1, 'Ram','India');
select * from #LocalTempTable
Après avoir exécuté toutes ces instructions si nous fermons la fenêtre de requête et l'ouvrons à nouveau et que nous essayons d'insérer et de sélectionner, la fenêtre affiche un message d'erreur
“Invalid object name #LocalTempTable”
Table de température globale
Commencera par ## (## temp).
Sera supprimé uniquement si l'utilisateur déconnecte toutes les connexions.
Il se comporte comme une table permanente.
CREATE TABLE ##NewGlobalTempTable( StudentID int, StudentName varchar(50), StudentAddress varchar(150)) Insert Into ##NewGlobalTempTable values ( 1,'Ram','India'); Select * from ##NewGlobalTempTable
Remarque: ils sont visibles par tous les utilisateurs de la base de données, quel que soit leur niveau d'autorisation.
Suppression de tables temporaires
Les tables temporaires doivent avoir des ID uniques (dans la session, pour les tables temporaires locales ou dans le serveur, pour les tables temporaires globales). Essayer de créer une table en utilisant un nom existant renverra l'erreur suivante:
There is already an object named '#tempTable' in the database.
Si votre requête produit des tables temporaires et que vous souhaitez l'exécuter plusieurs fois, vous devrez supprimer les tables avant d'essayer de les générer à nouveau. La syntaxe de base pour ceci est:
drop table #tempTable
Essayer d'exécuter cette syntaxe avant que la table n'existe (par exemple lors de la première exécution de votre syntaxe) provoquera une autre erreur:
Cannot drop the table '#tempTable', because it does not exist or you do not have permission.
Pour éviter cela, vous pouvez vérifier si la table existe déjà avant de la supprimer, comme ceci:
IF OBJECT_ID ('tempdb..#tempTable', 'U') is not null DROP TABLE #tempTable