1.) Un local temporaire n'existe que pour la durée d'une connexion ou, si elle est définie à l'intérieur d'une instruction composée, pour la durée de l'instruction composée.
Les tables temporelles locales ne sont accessibles qu'à la session SQL Server ou à l'utilisateur. connexion SQL Server (c'est-à-dire un seul utilisateur) qui a créé les tables. Elles sont automatiquement supprimées lorsque la session qui a créé les tables a été été fermée. Le nom de la table temporaire locale est précédé d'un seul signe dièse ("#").
CREATE TABLE #LocalTemp
(
UserID int,
Name varchar(50),
Address varchar(150)
)
GO
insert into #LocalTemp values ( 1, 'Name','Address');
GO
Select * from #LocalTemp
La portée de la table Local temp existe pour la session actuelle de l'utilisateur actuel. l'utilisateur actuel signifie à la fenêtre de requête actuelle. Si vous fermez la fenêtre de actuelle ou ouvrez une nouvelle fenêtre de requête et essayez de trouver la table temporaire créé ci-dessus, vous obtiendrez une erreur.
2.) Un temporaire global reste dans la base de données de façon permanente, mais les rangées n'existent que dans une connexion donnée. Lorsque la connexion est fermée, les données de la table temporaire globale disparaissent. Cependant, la définition de la table reste dans la base de données pour être accessible lors de la prochaine ouverture de la base de données.
Les tables temporelles globales sont disponibles pour toutes les sessions ou connexions connexions (c'est-à-dire tous les utilisateurs). Elles peuvent être créées par n'importe quel utilisateur de connexion SQL SQL Server et elles sont automatiquement supprimées lorsque toutes les connexions les connexions au serveur SQL ont été fermées. Table temporaire globale Le nom de la table temporaire globale est précédé du double signe dièse ("##").
CREATE TABLE ##GlobalTemp
(
UserID int,
Name varchar(50),
Address varchar(150)
)
GO
insert into ##GlobalTemp values ( 1, 'Name','Address');
GO
Select * from ##GlobalTemp
Les tables temporaires globales sont visibles par toutes les connexions SQL Server tandis que les tables temporaires locales ne sont visibles que par la connexion SQL Server actuelle.
2 votes
Voici quelques résumés détaillés sur ce sujet, Cliquez ici
5 votes
Soyez prudent lorsque vous utilisez des variables de tableau. Si vous les utilisez dans une requête, elles peuvent entraîner de sérieux problèmes de performance dans votre plan de requête, car elles ne sont pas indexées.
0 votes
En fait, les tables temporaires peuvent être indexées, si nécessaire, mais cela prend du temps et des ressources, aussi, et cela peut toujours causer des problèmes de performance ou de ressources.