Correction de la gestion des arguments dans les raccourcis clavier d'accélérateur de clavier personnalisés de SQL Server 2005 Mgmt Studio?

StackOverflow https://stackoverflow.com/questions/85179

  •  01-07-2019
  •  | 
  •  

Question

Je suis depuis longtemps fan des accélérateurs de procédure stockée, comme décrit dans cet article . Cependant, lorsque nous sommes passés de SQL 2000 à 2005 et de Query Analyzer à Management Studio, la gestion des arguments a changé. Dans QA, les arguments séparés par des virgules étaient automatiquement lus comme deux arguments distincts. Dans SSMS, du moins pour moi, il est lu comme un argument, avec des virgules. De même, si je passe un seul argument contenant des guillemets simples, j'obtiens une erreur de syntaxe, sauf si j'échappe aux guillemets ('- >' '). Dans l’article précité, l’auteur laisse entendre que cela ne devrait pas être le cas pour SSMS, mais même avec son exemple exact, les arguments séparés par des virgules sont toujours interprétés comme un seul argument pour chaque installation SSMS sur laquelle j’ai essayé (3 sur (exécutés sur toutes les installations SQL Server que j’ai essayées (4 d’entre elles).

Exemple, en tapant ce qui suit dans SSMS,

Person,4

puis en le sélectionnant et en exécutant le raccourci, je reçois le message d'erreur "Nom d'objet non valide" Personne, 4 ".

Quelqu'un a-t-il une idée de comment résoudre ce problème? Est-ce que quelqu'un utilise même ces raccourcis? J'ai googlé ce problème à plusieurs reprises au cours des deux dernières années et je n'ai pas eu de chance.

Modifier: Peut-être un problème avec une version spécifique de SSMS. J'ai un post de suivi ci-dessous.

Était-ce utile?

La solution 2

La suggestion de Tim n'a pas résolu mon problème sur mon PC de développement, mais elle m'a convaincu de réessayer à partir d'un autre PC. Lorsque j'utilise le SSMS d'un autre PC pour se connecter à la base de données du PC de développement et que j'essaie exactement ce que décrit Tim, j'ai le même comportement que Tim décrit.

J'ai également pu reproduire le problème d'analyse des arguments sur les autres PC que j'avais déjà essayés. J'espère que Tim pourra me faire savoir quelle est la version et le numéro de build sur son installation SSMS, car ma théorie actuelle est que le problème ne vient que de la construction spécifique que mes collègues et moi avons sur nos PC dev - la chaîne de version est "Microsoft SQL Server Management Studio 9.00.1399.00". Toutes nos installations de cette version ont eu lieu il y a bien plus d'un an, donc je ne sais pas si je peux retracer de quel disque il provient.

C’est le serveur de développement, qui a " Microsoft SQL Server Management Studio 9.00.3042.00 "qui ne pose PAS le problème. installée. Je ne sais pas si cela pourrait être quelque chose que je peux faire disparaître en appliquant des correctifs ou quelque chose du genre, mais il semble actuellement que 1399 lit la sélection entière comme un seul argument, tandis que 3042 effectue une analyse préalable. J'ai aussi récemment constaté que lorsque je passe dans une chaîne qui contient "-" (jeton de commentaire) en 3042, tout après le " - " est ignoré, alors qu'en 1399, tout est inclus dans le premier argument.

Autres conseils

Je ne l'avais jamais essayé avant d'avoir lu votre question, puis l'article que vous avez cité, prenez donc cela avec un grain de sel.

Cela étant dit, je suis en mesure de faire fonctionner le processus sur mon ordinateur à l'aide de SSMS, ainsi que de reproduire l'erreur que vous avez décrite.

Pour que cela fonctionne comme prévu, j'ai créé le sproc dans la base de données master, attribué le raccourci clavier et redémarré SSMS. J'ai ensuite saisi le nom de la base de données.nom_schéma.nom_table entre guillemets simples suivis d'une virgule, puis d'une valeur entière (le sproc que j'ai testé était l'exemple GetRows de l'article). J'étais toujours connecté à la base de données principale.

Cela a fonctionné sans incident.

Pour obtenir la même erreur que vous avez mentionnée, j'ai supprimé la référence au nom de schéma ou à la base de données et j'ai reçu la même erreur que vous.

Peut-être devez-vous ajouter le nom de la base de données et le nom du schéma avant le nom de la table?

J'utilise également la version 9.00.3042.00 de SSMS, ce qui explique probablement pourquoi cela fonctionne sur ma machine.

D'accord avec Tim. Je viens de mettre à niveau vers SQL Server 05 SP2 et je confirme que ce bogue est corrigé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top