IntelliSense ne fonctionne pas mais il est activé

30

Ce problème s'avère vraiment délicat (et assez ennuyeux).

Dans SQL Server Management Studio 2008, jusqu'à il y a quelques jours, mon IntelliSense fonctionnait très bien. Puis tout d'un coup, cela s'est arrêté. L'icône telle qu'elle est activée dans le menu de la barre d'outils, et sous Outils -> Options -> Éditeur de texte -> T-SQL -> IntelliSense, elle indique qu'elle y est activée.

J'ai essayé d'actualiser le cache IntelliSense avec Ctrl-Shft-R mais cela ne fonctionne pas non plus.

Avez-vous des idées sur ce qui est arrivé à mon IntelliSense et sur ce que je dois faire pour le récupérer?

Thomas Stringer
la source

Réponses:

31

Il existe un certain nombre de possibilités où IntelliSense ne fonctionne pas:

Dans certains cas, le cache local utilisé par IntelliSense devient obsolète. Actualiser le cache est facile mais pas nécessairement évident.

Il existe deux façons d'actualiser le cache:

  1. Frappé Ctrl+Shift+R
  2. Allez dans Edition -> IntelliSense -> Actualiser le cache local

Si IntelliSense ne fonctionne toujours pas, assurez-vous que IntelliSense est activé. Pour vérifier cela à partir de la fenêtre de l'éditeur de requête T-SQL de la base de données actuelle:

  1. Allez dans Outils -> Options -> Éditeur de texte -> Transact-SQL -> Général -> IntelliSense
  2. Allez dans Requête -> IntelliSense doit être sélectionné
  3. Vérifiez également que l'éditeur T-SQL ne se lance pas en mode SQLCMD. Vérifier:

    • Allez dans Outils -> Options -> Exécution de requête -> SQL Server -> Général
    • Assurez-vous que "Par défaut, ouvrez de nouvelles requêtes en mode SQLCMD" n'est pas cochée.
    • ou Aller à la requête -> Le mode SQLCMD ne doit pas être sélectionné

Lire la suite

Ritesh D
la source
16

J'ai eu ce problème, j'ai donc suivi les conseils de Ritesh D et je suis allé dans Outils -> Options -> Éditeur de texte -> Transact-SQL -> Général . J'ai vérifié IntelliSense et j'ai constaté qu'il était déjà activé.

Cependant, j'ai trouvé que les "Membres de la liste automatique" et les "Informations sur les paramètres" n'étaient pas cochés. Je les ai donc vérifiés. Cela a résolu mon problème.

entrez la description de l'image ici

Ces deux fonctionnalités sont ce que je considère comme "intellisense", et Microsoft n'est pas en désaccord :

IntelliSense est le terme général pour un certain nombre de fonctionnalités: liste des membres, informations sur les paramètres, informations rapides et mot complet. Ces fonctionnalités vous aident à en savoir plus sur le code que vous utilisez, à garder une trace des paramètres que vous tapez et à ajouter des appels aux propriétés et méthodes en quelques touches seulement.

Michael Currie
la source
9

Veuillez vérifier que la taille maximale du script est définie sur «Illimité» sous l'option de menu Outils -> Options -> Éditeur de texte -> Transact-SQL -> Général -> IntelliSense. Je l'ai fait et Intellisense a commencé à travailler

RT0205
la source
5

Lorsque vous utilisez une base de données distante avec une faible connexion de transfert (par exemple, je me suis connecté d'Europe au serveur de bureau de l'Asie lointaine) et lorsque la structure de la base de données n'est pas petite (par exemple, de nombreuses tables), il faut beaucoup plus de temps pour SSMS pour terminer toutes les données IntelliSense.

Dans mon cas, j'ai dû attendre plus d'une minute pour avoir IntelliSense accessible (connexion lente et db avec environ 1000 tables). (SSMS n'affiche aucun indicateur de progression ni aucune information liée au processus de chargement d'IntelliSense)

Bronek
la source
1

Les bases de données HORS LIGNE peuvent entraîner l'arrêt d'Intelissense. Vous pouvez le tester en mettant n'importe quelle base de données de votre serveur connecté en HORS LIGNE et en la rétablissant.

Je peux le confirmer en tant que bogue SQL 2016

jean
la source
1

J'ai remarqué ce problème lorsque j'ai révoqué certaines autorisations à l'utilisateur public, comme suggéré par Azure. Cela a aidé à résoudre mon problème:

use master
go
GRANT EXECUTE ON [xp_instance_regread] TO [public]
GRANT EXECUTE ON [xp_regread] TO [public]
Michael Capobianco
la source
-3

J'ai eu le même problème avec SQL Server 2008 R2. Il n'a été résolu qu'après avoir appliqué SQL Server 2008R2 Service Pack 1.

Geeta
la source
SQL Server 2008 et SQL Server 2008 R2 sont des versions différentes. La question porte sur la première et votre réponse sur la seconde.
Andriy M