nom d'objet SQL server non valide - mais les tables sont répertoriées dans la liste des tables SSMS
J'essaie de créer un Stored Procedure
pour une base de données nouvellement créée. Cependant, l'intellisense SSMS
ne reconnaît pas plus de la moitié des tables qui ont été créées.
Par exemple, alors que dans la colonne de gauche sous tables j'ai une table dbo.Room
, Quand je tape "dbo.
" dans la nouvelle fenêtre de requête, cette table n'est pas listée, en fait seulement 17 des 37 tables sont listées.
Je ne vois aucune différence entre les tables listées par intellisense et celles qui ne le sont pas. Si je tape manuellement dbo.Chambre, il est souligné, avec une erreur de
Nom D'objet non valide ' dbo.Chambre'..
Ai-je manqué quelque chose dans la mise en place des tables?
UPDATE: j'ai essayé l'actualisation de la liste des tables (plusieurs fois)
13 réponses
Essayez:
Modifier -> IntelliSense -> Actualisation Du Cache Local
Cela devrait actualiser les données mises en cache par Intellisense pour fournir la prise en charge de typeahead et la détection des erreurs de pré-exécution.
Remarque: votre curseur doit être dans l'éditeur de requête pour que le menu IntelliSense soit visible.
Ctrl + Maj + R actualise intellisense dans management studio 2008.
Une fois que vous créez un nouvel objet SQL Server, votre objet nouvellement créé n'est pas mis à jour dans le Cache local IntelliSence et, pour cette raison, il affiche une ligne rouge sous cet objet. Vous avez donc juste besoin d'actualiser le Cache local SSMS IntelliSence et une fois que vous l'actualisez, IntelliSence
ajoutera automatiquement l'objet nouvellement créé dans le cache et la ligne rouge disparaîtra. essayez ceci
Edit -> IntelliSense -> Refresh Local Cache
ou Ctrl + Maj + R
Dans mon cas, le cache IntelliSense listait les informations d'objet pour une base de données entièrement différente. Si j'ai cliqué sur le bouton" nouvelle requête " dans SSMS, il ouvrirait une requête à mon catalogue par défaut sur le serveur et cet éditeur de requête n'utiliserait toujours que cette base de données. L'actualisation du cache n'a rien changé. Redémarrer SSMS n'a rien changé. Changer la base de données n'a rien changé.
J'ai fini par créer une requête en cliquant avec le bouton droit sur la base de données que je voulais réellement pour utiliser et choisir "nouvelle requête" dans ce menu contextuel. maintenant SSMS utilise les objets corrects pour IntelliSense.
Êtes-vous certain que la table en question existe?
Avez-vous actualisé la vue table dans L'Explorateur D'objets? Cela peut être fait en cliquant avec le bouton droit sur le dossier" tables " et en appuyant sur la touche F5.
Vous devrez peut-être aussi rééchelonner le cache Intellisense.
Cela peut être fait en suivant le menu route: Edit - > IntelliSense - > Refresh Local Cache
La solution est:
- Cliquez sur Requête de menu,
- Cliquez ensuite sur "Modifier la base de données".
- Sélectionnez le nom de votre base de données appropriée.
C'est ça.
Assurez-vous que la base de données sélectionnée est celle où se trouve la table. J'exécutais le Script sur Master
. Dans mon cas, j'ai dû passer à hr_db
.
Erreur recrue mais, pourrait aider quelqu'un.
Même après l'installation de SP3 sur SQL Server 2008 Enterprise, il s'agit toujours d'un "problème"."Ctrl+Maj+R comme tout le monde a dit résolu ce problème pour moi.
Résolu pour SSMS 2016.
Avait un problème similaire, mais Intellisense n'était pas dans le menu Édition.
Ce qui semblait résoudre le problème était D'activer et de désactiver Intellisens, faites un clic droit sur L'éditeur SQL et cliquez sur 'Intellisense activé'. Faites un clic droit à nouveau sur 'Intellisense Enabled' pour le rallumer. Ctr Q, je le fais aussi.
Cela a résolu le problème, et je sais aussi obtenir l'Intellisense dans le menu Edition.
Avez-vous essayé: faites un clic droit sur la base de données, et cliquez sur "Actualiser"
Je me rends compte que cette question a déjà été répondue, cependant, j'avais une solution différente:
Si vous écrivez un script où vous déposez les tables sans les recréer, ces tables apparaîtront comme manquantes si vous essayez de les référencer plus tard.
Note: cela ne va pas se produire avec un script qui est constamment exécuté, mais il est parfois plus facile d'avoir un script avec des requêtes à reerence que de les taper à chaque fois.
J'ai juste dû fermer SMSS et le rouvrir. J'ai essayé D'actualiser le Cache Local et cela n'a pas fonctionné.