Supprimer la saisie semi-automatique de SQL Server Management Studio


21

Existe-t-il un moyen de supprimer temporairement la saisie semi-automatique de SQL Server Management Studio lors de la saisie d'une requête? Je ne veux pas désactiver complètement la saisie semi-automatique, dites simplement de maintenir une touche enfoncée tout en tapant un mot particulier afin qu'il ne gêne pas.

Par exemple, disons que j'avais la requête suivante

SELECT Foo, Foo2 FROM SomeTable

Comme je tape Fooet puis appuyez sur la barre d' espacement des coups de pied-complète auto de SQL Server Management Studio et finalise Fooà FooBar.


6
Vous constaterez que IntelliSense dans SQL Server 2012 Management Studio est beaucoup moins agressif. Je ne peux pas le supporter en 2008 - s'il y a une colonne nommée ID, elle devient IDENT_CURRENT. Dégueuler.
Aaron Bertrand

1
@AaronBertrand - L'espace ou la virgule sont-ils toujours complétés automatiquement? Je trouve cela très ennuyeux car j'ai l'habitude de devoir taper pour cela dans d'autres environnements et 95% du temps, il se termine automatiquement par quelque chose dont je dois ensuite supprimer la fin.
Martin Smith

@MartinSmith pour l'espace et la virgule, ils sont interprétés comme ils devraient être, à moins que vous n'utilisiez la flèche vers le bas pour mettre en surbrillance la sélection évidente (c'est une frappe), puis appuyez sur espace ou virgule. Tab choisit l'option que SSMS pense que vous vouliez dire. Et l'algorithme du "meilleur choix" est 1000 fois meilleur que 2008/2008 R2. La meilleure partie pour moi est une correspondance partielle. tapez sys.dependet la liste de saisie semi-automatique est filtrée sur tous les DMV / vues de catalogue qui contiennent depend .
Aaron Bertrand

1
@MartinSmith Cela n'aidera pas OP, mais je pense avoir trouvé une solution dans SSMS 2014 ... publiée ci-dessous.
Doug_Ivison

1
@Doug_Ivison J'ai posté cette question il y a un bon moment, j'utilise maintenant SSMS 2016. Je pense que c'est mieux à cet égard maintenant ..
Jack

Réponses:


26

Appuyez sur ESCpour fermer la fenêtre lorsque vous avez terminé de taper le mot avant de toucher l'espace, mais si vous appuyez ESCsur «fo» puis tapez «o», il se déclenchera à nouveau.

Une autre option si vous ne l'utilisez pas souvent serait de le désactiver ( Tools->Options->Text Editor->Transact-SQL->General->Auto list members) et d'utiliser CTRL+ Jpour l'afficher manuellement lorsque vous souhaitez l'utiliser. Red Gate a également un produit appelé SQL Prompt qui pourrait offrir plus de contrôle.

De plus, il y a une option "Intellisense Enabled" sous le menu Query et sur la barre d'outils Query si vous voulez la désactiver / l'activer temporairement.


1
(Cela fonctionne également dans d'autres outils MS comme VS.)
pst

Merci, mais c'est toujours super ennuyeux pour les noms qui contiennent des espaces ( [Foo Bar]par exemple), car comme vous l'avez mentionné, il se déclenche à nouveau, vous devez donc continuer à frapper ESC. Je vais laisser la question ouverte un peu plus longtemps avant d'accepter de voir si quelqu'un connaît une solution différente.

Je suis d'accord, je ne pense pas que la saisie semi-automatique devrait être activée dans une clause de sélection, sauf si vous avez déjà spécifié votre table.

1
Ctrl+space(le raccourci clavier le plus courant) fonctionne également pour afficher la saisie semi-automatique.
Marc

4

Si vous annulez (ctrl-Z) après une mauvaise sélection automatique, votre entrée d'origine sera restaurée.


2

Cela n'aidera pas avec SSMS 2008, mais (au cas où d'autres auraient trouvé cette page, comme moi), je pense avoir trouvé une solution dans SSMS 2014:

Dans le menu déroulant Modifier, en bas, sélectionnez Intellisense, puis activez "Mot complet".

Cela semble désactiver la complétion implicite des mots lorsqu'un espace est tapé, mais je reçois toujours les listes déroulantes proposées pour la complétion pour les noms de colonnes, qui peuvent être sélectionnés en utilisant des flèches puis retourner / tab / espace.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.