J'essaie de créer un Stored Procedure
pour une base de données nouvellement créée. Cependant l' SSMS
intellisense ne reconnaît pas plus de la moitié des tableaux qui ont été créés.
Par exemple, dans la colonne de gauche sous les tableaux, j'ai un tableau dbo.Room
, lorsque je tape " dbo.
" dans la nouvelle fenêtre de requête, cette table n'est pas répertoriée, en fait, seules 17 des 37 tables sont répertoriées.
Je ne vois aucune différence entre les tableaux répertoriés par intellisense et ceux qui ne le sont pas. Si je tape manuellement dbo.Room, il est souligné, avec une erreur de
Nom d'objet non valide 'dbo.Room' ..
Ai-je raté quelque chose lors de la mise en place des tables?
MISE À JOUR: J'ai essayé d'actualiser la liste des tables (plusieurs fois)
la source
[DatabaseName].[Schema].[TableName]
SO: Nom d'objet invalide sqlRéponses:
Essayer:
Edit-> IntelliSense->Refresh Local Cache
Cela devrait actualiser les données mises en cache par Intellisense pour fournir un support de frappe et une 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.
la source
Ctrl+ Shift+ Rrafraîchit également intellisense dans le studio de gestion 2008.
la source
Assurez-vous que la base de données sélectionnée est celle où se trouve la table. J'exécutais le script
Master
. Dans mon cas, j'ai dû passer àhr_db
.Erreur de débutant mais pourrait aider quelqu'un.
la source
master
est défini comme la base de données par défaut pour votre connexion utilisateur. Modifiez simplement cette utilisationsp_defaultdb
dans une autre base de données pour que l'autre base de données soit sélectionnée dans SSMS lorsque vous vous connectez. (Peut également être défini dans SSMS parSecurity > Logins > your user login > Properties > Default database
)une fois que vous avez créé 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. Il vous suffit donc d'actualiser le cache local SSMS IntelliSence et une fois que vous l'avez actualisé,
IntelliSence
ajoutera automatiquement le nouvel objet créé dans le cache et la ligne rouge disparaîtra. essaye çaEdit -> IntelliSense -> Refresh Local Cache
ou Ctrl+ Shift+Rla source
Dans mon cas, le cache IntelliSense répertorie les informations sur les objets pour une base de données entièrement différente. Si je cliquais sur le bouton "Nouvelle requête" dans SSMS, cela ouvrirait une requête sur 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é. Le redémarrage de 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 utiliser et en choisissant "Nouvelle requête" dans ce menu contextuel. Maintenant, SSMS utilise les objets corrects pour IntelliSense.
la source
Êtes-vous certain que le tableau en question existe?
Avez-vous actualisé la vue de 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 toucheF5 touche.
Vous devrez peut-être également relancer le cache Intellisense.
Cela peut être fait en suivant l'itinéraire du menu: Édition -> IntelliSense -> Actualiser le cache local
la source
La solution est:
C'est tout.
la source
Même problème avec moi quand j'ai utilisé ce problème de syntaxe résolu.
Syntaxe:
la source
Même après l'installation de SP3 sur SQL Server 2008 Enterprise, il s'agit toujours d'un «problème». Ctrl+ Shift+ Rcomme tout le monde l'a dit a résolu ce problème pour moi.
la source
Résolu pour SSMS 2016.
J'ai eu un problème similaire, mais Intellisense n'était pas dans le menu Edition.
Ce qui semblait le résoudre, c'était d'activer et de désactiver Intellisens, de faire un clic droit sur l'éditeur SQL et de cliquer sur 'Intellisense Enabled'. Cliquez de nouveau avec le bouton droit sur «Intellisense activé» pour le réactiver. Ctr Q, je fais aussi ça.
Cela a résolu le problème, et je sais également obtenir l'Intellisense dans le menu Edition.
la source
J'ai juste dû fermer SMSS et le rouvrir. J'ai essayé d'actualiser le cache local et cela n'a pas fonctionné.
la source
avez-vous essayé: faites un clic droit sur la base de données, puis cliquez sur "rafraîchir"
la source
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 dans lequel vous supprimez les tables sans les recréer, ces tables s'afficheront comme manquantes si vous essayez de les référencer plus tard.
Remarque: Cela ne se produira pas avec un script qui est constamment exécuté, mais il est parfois plus facile d'avoir un script avec des requêtes à ré-référencer que de les taper à chaque fois.
la source
J'ai rencontré le problème avec: ODBC et SQL-Server-Authentication dans ODBC et Firedac-Connection
Solution: j'ai dû définir le paramètre MetaDefSchema sur sqlserver nom d'utilisateur: FDConnection1.Params.AddPair ('MetaDefSchema', self.FDConnection1.Params.UserName);
Le wikidoc sais: MetaDefSchema = Nom de schéma par défaut. Le code temporel de conception >> exclut << !! le nom de schéma de l'objet SQL-Server-Authenticatoinname s'il est égal à MetaDefSchema.
sans paramètre, le codeur automatique crée: dbname.username.tablename -> nom d'objet invalide
En définissant MetaDefSchema sur sqlserver-username: dbname.tablename -> fonctionne!
Voir également l'embarcadero-doc sur: http://docwiki.embarcadero.com/RADStudio/Rio/en/Connect_to_Microsoft_SQL_Server_(FireDAC)
J'espère que ça aide quelqu'un d'autre ..
salutations, Lutz
la source
Dans azure data studio, appuyez sur "cmd + shift + p" et tapez "intellisense", puis vous verrez une option pour actualiser le cache intellisense.
la source
N'oubliez pas de créer vos migrations après avoir écrit les modèles
la source