Où les tables temporaires sont-ils situés?
Si je crée une table temporaire à l'aide # signe:
SELECT * INTO #temp FROM dbo.table
Où est cette table? Je ne trouve pas ce à partir de la base de données tempdb.
Vous devez vous connecter pour publier un commentaire.
Ces tables sont créé dans votre
tempDB
- mais le nom de la table peut-être pas exactement comme vous l'avez défini.Dans mon cas, j'obtiens:
Essayez ceci:
Vous devriez voir une entrée pour que la temp de la table que vous venez de créer....
Lorsque vous déclarez une table temporaire, SQL Sever ajoute des caractères supplémentaires sur son nom dans le but de fournir un nom de système unique pour elle et puis il stocke dans tempDB dans la table sysobjects. Même si vous pouvez interroger la table temporaire avec son nom logique, en interne, est connu avec le nom exact de SQL Server a mis.
La façon dont vous êtes à la recherche pour eux?
Si vous faites un select, vous obtiendrez les données.
Mais le tableau n'est disponible que dans la session, il suffit pour l'utilisateur qui l'a créé (vous pouvez utiliser des tables temporaires globales).
Ils sont stockés dans la bdd temp.
De tables temporaires locales peuvent être créées à l'aide de dièse (#) est placé avant le nom de la table.
Ils sont visibles uniquement en connexion en cours. Lorsque la connexion est abandonnée de son champ d'application se termine ainsi.
Il est possible de créer et d'utiliser des locaux de la table temporaire avec le même nom simultanément dans les deux connexions différentes.
Lire Plus
http://sqlnetcode.blogspot.com/2011/11/there-is-already-object-named-temp-in.html
Je soupçonne ce problème rose le fait que si vous n'avez pas de clic droit et actualiser les 'Tables Temporaires dossier, SSMS ne vous montrera pas le temp de table immédiatement.