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

Est-il nécessaire d'utiliser # pour créer des tables temporaires dans SQL Server ?

Oui. Vous devez préfixer le nom de la table avec "#" (dièse) pour créer des tables temporaires.

Si vous n'avez PAS besoin de la table plus tard, allez-y et créez-la. Les tables temporaires ressemblent beaucoup aux tables normales. Cependant, il est créé dans tempdb. De plus, il n'est accessible que via la session en cours, c'est-à-dire pour EG :si un autre utilisateur essaie d'accéder à la table temporaire que vous avez créée, il ne pourra pas le faire.

"##" (le double hachage crée une table temporaire "Globale" accessible également par d'autres sessions.

Reportez-vous au lien ci-dessous pour les bases des tables temporaires :http://www.codeproject.com/Articles/42553/Quick-Overview-Temporary-Tables-in-SQL-Server-2005

Si le contenu de votre table est inférieur à 5000 lignes et ne contient PAS de types de données tels que nvarchar(MAX), varbinary(MAX), envisagez d'utiliser des variables de table.

Elles sont les plus rapides car elles sont comme toutes les autres variables stockées dans la RAM. Ils sont également stockés dans tempdb, pas dans la RAM .

DECLARE @ItemBack1 TABLE
(
 column1 int,
 column2 int,
 someInt int,
 someVarChar nvarchar(50)
);

INSERT INTO @ItemBack1
SELECT column1, 
       column2, 
       someInt, 
       someVarChar 
  FROM table2
 WHERE table2.ID = 7;

Plus d'informations sur les variables de table :http://odetocode.com/articles/365.aspx