48 votes

Nom d'objet non valide SQL Server 2008 R2 - Procédure stockée

Je tente de modifier une procédure stockée existante avec la commande suivante

ALTER 'nom_de_la_procédure_stockée'.

mais le nom est surligné en rouge, indiquant qu'il s'agit d'un objet non valide. Je suis en mesure d'exécuter la commande avec succès, mais je voudrais savoir pourquoi SQL Server 2008 R2 signale une erreur. enter image description here

111voto

C'est SSMS, pas SQL Server. S'il s'agit d'une erreur contre le moteur de base de données, vous le saurez (il n'aurait pas exécuté la commande avec succès).

Solution

Vous devez rafraîchir le cache Intellisense (Ctrl + Shift + R). Ou vous pouvez aller dans Édition -> IntelliSense -> Rafraîchir le cache local.

9voto

ELA Points 131

Créez une procédure stockée en utilisant CREATE PROCEDURE pas ALTER PROCEDURE .

6voto

Vinnie Points 1899

L'Intellisense ne se rafraîchit pas aussi rapidement que vous créez de nouveaux objets. Vous devez rafraîchir le cache (Ctrl + Shift + R). Ou, peut-être, ne vous fiez pas à Intellisense et ne vous inquiétez que si l'exécution échoue.

0voto

Alan Points 1

J'ai eu le même problème et j'ai vu un nombre incroyable de réponses possibles, certaines assez exotiques. Malheureusement, je n'ai pas vu cette page avant de trouver ce qui a fonctionné pour moi. J'ai pensé l'ajouter, même si je pense qu'elle a la même finalité que l'Intellisense rafraîchissante. Je savais que j'avais bien fait mon travail car la procédure stockée fonctionnait correctement malgré l'erreur, et j'ai finalement décidé que ce n'était pas une "vraie" erreur.

J'ai quitté SSMS et me suis réinscrit et l'erreur Nom d'objet non valide n'est plus apparue. Je suppose que cela a également rafraîchi l'Intellisense.

0voto

user2780371 Points 1

Dans mon cas, sur SQL Server 2014 Express, la valeur du nom de la procédure stockée affiche ce message d'erreur

Le nom de l'objet "SP_NAME" n'est pas valide.

même si la procédure stockée a déjà été créée et s'exécute avec succès. Mais après avoir activé IntelliSense, l'erreur a été supprimée et chaque requête de procédure stockée fonctionne bien.

enter image description here

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X