Подавить автозаполнение SQL Server Management Studio автоматически


21

Есть ли способ временно отключить автозаполнение SQL Server Management Studio при вводе запроса? Я не хочу полностью отключать автозаполнение, просто скажите, удерживая нажатой клавишу, набирая определенное слово, чтобы оно не мешало.

Например, скажем, у меня был следующий запрос

SELECT Foo, Foo2 FROM SomeTable

Как я печатаю , Fooа затем нажмите пространство-бар автозаполнения пинков SQL Server Management Studio в и завершается Fooк FooBar.


6
Вы обнаружите, что IntelliSense в SQL Server 2012 Management Studio гораздо менее агрессивен. Я не могу выдержать это в 2008 году - если есть столбец с именем ID, он изменяется на IDENT_CURRENT. Пук.
Аарон Бертран

1
@AaronBertrand - автоматическое заполнение пробела или запятой все еще выполняется? Я нахожу это очень раздражающим, так как я привык к тому, что в других средах это вкладка, и в 95% случаев он автоматически завершается чем-то, что мне затем нужно удалить в конце.
Мартин Смит

@MartinSmith для пробела и запятой, они интерпретируются, как и должно быть, если только вы не используете стрелку вниз, чтобы выделить очевидный выбор (это одно нажатие клавиши), а затем нажмите пробел или запятую. Вкладка выбирает вариант, который SSMS считает нужным. И алгоритм «лучший выбор» в 1000 раз лучше, чем 2008/2008 R2. Лучшая часть для меня - частичное совпадение. тип sys.dependи список автозаполнения фильтруется для всех DMV / представлений каталога, которые содержат depend .
Аарон Бертран

1
@MartinSmith Это не поможет OP, но я думаю, что нашел решение в SSMS 2014 ... опубликовано ниже.
Doug_Ivison

1
@Doug_Ivison Я уже писал этот вопрос довольно давно, сейчас я использую SSMS 2016. Думаю, сейчас лучше в этом отношении ..
Джек,

Ответы:


26

Нажмите, ESCчтобы закрыть окно, когда закончите вводить слово, прежде чем нажать пробел, но если вы нажмете ESCпосле «fo», а затем наберете «o», оно снова появится.

Другой вариант, если вы не используете его часто, это отключить его ( Tools->Options->Text Editor->Transact-SQL->General->Auto list members) и использовать CTRL+, Jчтобы вызвать его вручную, когда вы хотите его использовать. Red Gate также имеет продукт под названием SQL Prompt, который может предложить больший контроль.

Кроме того, есть опция «Intellisense Enabled» в меню «Запрос» и на панели инструментов «Запрос», если вы хотите временно отключить / включить ее.


1
(Это также работает в других инструментах MS, таких как VS.)
pst

Спасибо, но это все еще супер раздражает для имен, которые содержат пробелы ( [Foo Bar]например), так как, как вы упомянули, он включается снова, так что в конечном итоге вам нужно продолжать нажимать ESC. Я собираюсь оставить вопрос открытым немного дольше, прежде чем принять решение, чтобы узнать, знает ли кто-нибудь о другом решении.

Я согласен, я не думаю, что автозаполнение должно быть включено в предложении выбора, если вы уже не указали свою таблицу.

1
Ctrl+space(более распространенная горячая клавиша) также работает, чтобы вызвать автозаполнение.
Марк

4

Если вы отмените (ctrl-Z) после того, как появится неправильный автоматический выбор, ваша первоначальная запись будет восстановлена.


2

Это не поможет с SSMS 2008, но (в случае, если другие нашли эту страницу, как я), я думаю, что нашел решение в SSMS 2014:

В раскрывающемся меню «Редактировать» внизу выберите Intellisense, а затем переключите «Завершить слово».

Кажется, это отключает неявное завершение слов при вводе пробела, но я все еще получаю раскрывающиеся списки, предлагаемые для завершения для имен столбцов, которые можно выбрать с помощью стрелок, а затем вернуть / tab / space.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.