web-dev-qa-db-fra.com

IntelliSense ne fonctionne pas mais il est activé

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 est activée à cet endroit.

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?

30
Thomas Stringer

Si vous avez récemment mis à niveau votre VisualStudio, consultez ce lien pour un correctif:

La fonctionnalité IntelliSense de SSMS 2008 R2 peut cesser de fonctionner après l'installation de Visual Studio 2010 SP1

Ou vous pouvez télécharger le correctif directement à partir d'ici:

Comment obtenir le dernier Service Pack pour SQL Server 2008 R2

11
Ezi

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é

En savoir plus

31
Ritesh D

J'ai eu ce problème, j'ai donc suivi les conseils de Ritesh D et je suis allé à Outils -> Options -> Éditeur de texte -> Transact-SQL -> Général . J'ai vérifié IntelliSense et j'ai trouvé 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.

enter image description here

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.

16
Michael Currie

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

9
RT0205

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)

5
Bronek

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]
1
Michael Capobianco

HORS LIGNE les bases de données peuvent entraîner l'arrêt du fonctionnement 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

1
jean