Unterdrücken Sie die automatische Vervollständigung von SQL Server Management Studio

21

Gibt es eine Möglichkeit, die automatische Vervollständigung von SQL Server Management Studio beim Eingeben einer Abfrage vorübergehend zu unterdrücken? Ich möchte die automatische Vervollständigung nicht vollständig deaktivieren. Sagen Sie einfach, dass Sie eine Taste gedrückt halten, während Sie ein bestimmtes Wort eingeben, damit es nicht im Weg ist.

Angenommen, ich hatte die folgende Abfrage

SELECT Foo, Foo2 FROM SomeTable

Wie ich geben Foound dann drücken Sie Leertaste SQL Server Management Studio auto-complete Kicks und schließt Foozu FooBar.

Jack
quelle
6
Sie werden feststellen, dass IntelliSense in SQL Server 2012 Management Studio viel weniger aggressiv ist. Ich kann es 2008 nicht ausstehen - wenn es eine Spalte mit dem Namen ID gibt, wird sie in IDENT_CURRENT geändert. Kotzen.
Aaron Bertrand
1
@AaronBertrand - Wird die Leertaste oder das Komma immer noch automatisch vervollständigt? Ich finde das sehr ärgerlich, da ich es gewohnt bin, in anderen Umgebungen dafür zu tappen, und 95% der Zeit wird es automatisch zu etwas vervollständigt, das ich dann am Ende löschen muss.
Martin Smith
@MartinSmith für Leerzeichen und Komma werden so interpretiert, wie sie sein sollten, es sei denn, Sie verwenden den Abwärtspfeil, um die offensichtliche Auswahl hervorzuheben (dies ist ein Tastendruck), und drücken dann Leerzeichen oder Komma. Tab wählt die Option aus, von der SSMS denkt, dass Sie das gemeint haben. Und der Algorithmus für "beste Wahl" ist 1000X besser als 2008/2008 R2. Das Beste für mich ist die teilweise Übereinstimmung. Typ sys.dependund die Auto-Vervollständigungsliste wird in alle DMVs / Katalogansichten gefiltert, die enthalten depend .
Aaron Bertrand
1
@MartinSmith Dies wird OP nicht helfen, aber ich glaube, ich habe in SSMS 2014 eine Lösung gefunden ... siehe unten.
Doug_Ivison
1
@Doug_Ivison Ich habe diese Frage vor einiger Zeit gepostet und verwende jetzt SSMS 2016. Ich denke, diesbezüglich ist es jetzt besser.
Jack

Antworten:

26

Drücken Sie ESC, um das Fenster zu schließen, nachdem Sie das Wort eingegeben haben, bevor Sie ESCdie Leertaste drücken. Wenn Sie jedoch nach 'fo' drücken und dann 'o' eingeben , wird es erneut aktiviert.

Eine andere Option, wenn Sie es nicht oft verwenden, ist, es zu deaktivieren ( Tools->Options->Text Editor->Transact-SQL->General->Auto list members) und CTRL+ Jzu verwenden, um es manuell aufzurufen, wenn Sie es verwenden möchten. Red Gate hat auch ein Produkt namens SQL Prompt, das möglicherweise mehr Kontrolle bietet.

Darüber hinaus gibt es eine Option "Intellisense aktiviert" im Menü "Abfrage" und in der Symbolleiste "Abfrage", wenn Sie sie vorübergehend deaktivieren / aktivieren möchten.

Jason Goemaat
quelle
1
(Dies funktioniert auch in anderen MS-Tools wie VS.)
26.
Vielen Dank, aber es ist immer noch sehr ärgerlich für Namen, die Leerzeichen enthalten ( [Foo Bar]zum Beispiel), da sie, wie Sie bereits erwähnt haben, erneut aktiviert werden, sodass Sie am Ende weiter schlagen müssen ESC. Ich werde die Frage etwas länger offen lassen, bevor ich akzeptiere, ob jemand eine andere Lösung kennt.
Ich stimme zu, ich denke nicht, dass die automatische Vervollständigung in einer select-Klausel aktiviert werden sollte, es sei denn, Sie haben bereits Ihre from-Tabellen angegeben.
1
Ctrl+space(der gebräuchlichere Hotkey) ruft auch die automatische Vervollständigung auf.
Marc
4

Wenn Sie die falsche automatische Auswahl rückgängig machen (Strg-Z), wird der ursprüngliche Eintrag wiederhergestellt.

BKeith
quelle
2

Dies wird bei SSMS 2008 nicht helfen, aber (falls andere diese Seite gefunden haben, so wie ich), ich glaube, ich habe in SSMS 2014 eine Lösung gefunden:

Wählen Sie unten im Pulldown-Menü Bearbeiten die Option Intellisense aus, und aktivieren Sie die Option "Vollständiges Wort".

Dies scheint die implizite Wortvervollständigung zu deaktivieren, wenn ein Leerzeichen eingegeben wird, aber ich erhalte immer noch die Dropdown-Listen zur Vervollständigung für Spaltennamen, die mit den Pfeilen und dann mit return / tab / space ausgewählt werden können.

Doug_Ivison
quelle