2017-06-22 1 views
0

J'ouvre une nouvelle requête dans ssms et crée une table temporaire globale. J'ouvre ensuite une nouvelle fenêtre de requête dans ssms et j'écris sql pour insérer des données dans les champs. Mais dans la nouvelle fenêtre de requête, intellisense ne reconnaît pas la table temporaire. Le sql fonctionne bien et les données sont insérées dans la table temporaire et je peux travailler avec la table temporaire mais sans intellisense. Je peux retourner à la fenêtre de requête d'origine où la table a été créée et intellisense fonctionne bien. J'ai essayé l'intellisense rafraîchissant, ça ne marche pas. N'hésitez pas à nous faire part de vos suggestions.intellisense ne voit pas la table temporaire globale

Code de la table est

CREATE TABLE ##UserInfo 
(

    [UserId] int NOT NULL IDENTITY (1, 1), 
    [strEmail] varchar(50) NULL, 
    [strLastName] varchar(50) NULL, 
    [strFirstName] varchar(50) NULL, 

) 

code Insérer

insert into ##Userinfo(strLastName,strFirstName) 

select distinct POC_DATA.POC_LNAME, POC_DATA.POC_FNAME 
from POC_DATA 

Le gras est le IntelliSense partiel ne reconnaît pas dans la fenêtre différente de requête

+1

Intellisense natif ne fonctionne pas très bien avec les tables temporaires et ne fonctionnera certainement pas avec une table temporaire globale. Gardez à l'esprit que les tables temporaires globales sont mauvaises et qu'elles provoquent toutes sortes de problèmes avec la concurrence. –

+2

Avez-vous vu une documentation qui indique qu'intellisense DEVRAIT reconnaître la table temporaire globale qui est codée dans une autre fenêtre de requête? Cela ressemble à un comportement attendu pour moi. –

Répondre

1

Jusqu'à présent, le seul "truc" J'ai été en mesure de venir avec est d'inclure la commande "CREATE TABLE" dans un bloc qui ne sera jamais exécuté, mais intellisense verra, comme ça:

IF 1=0 
BEGIN 
    CREATE TABLE ##UserInfo (
     [UserId] int NOT NULL IDENTITY (1, 1), 
     [strEmail] varchar(50) NULL, 
     [strLastName] varchar(50) NULL, 
     [strFirstName] varchar(50) NULL, 
    ); 
END 

Ce serait bien si vous pouviez mettre dans un commentaire, mais hélas intellisense ignore cela.