Est-il nécessaire d'utiliser #
avant de créer une table temporaire dans SQL Server?
Exemple:
SELECT column1, column2, someInt, someVarChar
INTO ItemBack1
FROM table2
WHERE table2.ID = 7
Pour ItemBack1, est-il nécessaire d'utiliser le #
symbole?
Sinon, à quoi sert la #
création de tables temporaires?
Réponses:
Oui. Vous devez préfixer le nom de la table avec "#" (hachage) pour créer des tables temporaires.
Si vous n'avez PAS besoin du tableau plus tard, continuez et créez-le. 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 tente 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" qui peut également être accédée 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.
Ils sont les plus rapides car ils sont comme toutes les autres variables qui sont stockées dans la RAM.Ils sont également stockés dans tempdb, pas dans la RAM .Plus d'informations sur les variables de table: http://odetocode.com/articles/365.aspx
la source
La différence entre ces deux tables
ItemBack1
et#ItemBack1
est que la première sur est persistante (permanente) alors que l'autre est temporaire.Maintenant, jetez un œil à votre question à nouveau
La réponse est Oui , car sans cela,
#
la table ne sera pas une table temporaire, elle sera indépendante de toutes les sessions et étendues.la source