SQL Server Management Studio 2008 Intellisense

Я только что установил SQL Server Express 2008 из-за функции IntelliSense. Сначала работало, но потом перестало. В поисках возможности проверить, а затем проконсультировавшись с Google, я обнаружил, что Microsoft отключил IntelliSense, если вы подключаетесь к базам данных SQL Server 2005.

Это абсолютно правильно?
Есть ли какое-нибудь решение для этого (какой-то "переключатель" реестра)?


person Robert Vuković    schedule 30.10.2008    source источник


Ответы (13)


Если вы хотите, чтобы эта функция была добавлена, проголосуйте за запрос на Подключить. Вот отзыв от команды о том, почему он был удален:

Позвольте мне поделиться информацией команды разработчиков о поддержке версий IntelliSense. Это было действительно побочным проектом с самого начала проекта IntelliSense и было частью бизнес-решения. Реализация IntelliSense требует полной точности реконструкции синтаксического анализатора ядра на стороне клиента с использованием базы управляемого кода. Поддержка нескольких версий сервера означает параллельную разработку и реализацию нескольких версий парсеров и соответствующей инфраструктуры. Это умножает время и затраты на разработку, тестирование и поддержку. В то же время основной модуль является важной базой продукта, которая позволяет не только функции IntelliSense, но и другим продуктам, включая Upgrade Advisor, анализировать сценарии; в долгосрочной перспективе это потенциально любая функция, которая требует синтаксического и семантического понимания языка Transact-SQL.

В CTP5 и CTP6 у IntelliSense была известная проблема, заключавшаяся в том, что она неправильно проверяла версию сервера, поэтому пользователи CTP могли подключать любую версию SQL Server с помощью IntelliSense. Хотя некоторые пользователи этого не заметили, IntelliSense работала некорректно, как хотелось бы. Результат заключался в том, что IntelliSense обладал высоким потенциалом, чтобы подсказывать пользователям неверный сценарий Transact-SQL или ложноотрицательно указывать на то, что сценарий содержит ошибки, в то время как в этих версиях он абсолютно действителен.

Учитывая, что целью IntelliSense номер один является повышение производительности при создании сложных запросов или хранимых процедур (или просто скриптов Transact-SQL), эта проблема рассматривалась как фактор снижения производительности, что оказывает огромное негативное влияние. из новой функции.

В версии RC0 эта известная проблема была исправлена: IntelliSense проверяет версию сервера и предоставляет свою функцию в поддерживаемой версии, то есть в SQL Server 2008.

В первой версии IntelliSense включен для подмножества языка Transact-SQL. Это связано с большим объемом работ по реализации лексера, синтаксического анализатора, связывателя и объектной модели документа сценария в управляемом коде для всей языковой области. Команда разработчиков движется вперед, уделяя особое внимание расширению области языковой поддержки.

Я надеюсь, что эта информация содержит как минимум справочную информацию о том, почему целевая версия была выбрана только для SQL Server 2008.

Всем, кто использует сборку RTM, следует рассматривать сборку CU1 (накопительное обновление 1), доступную здесь, как достаточно исправлено несколько ошибок IntelliSense.

person Craig Nicholson    schedule 30.10.2008
comment
Теперь он закрыт как по замыслу! :( - person CoderHawk; 19.02.2011

Еще один бесплатный инструмент, который можно добавить в этот список, — это ApexSQL Complete . Я использую его в течение последних нескольких месяцев и нахожу его немного лучше, чем intellisense SSMS, поскольку он предоставляет более полезные всплывающие подсказки.

Как правило, вы не ошибетесь ни с одним из упомянутых здесь инструментов, особенно если вы готовы платить за инструменты премиум-класса.

person John Moore    schedule 25.03.2013
comment
Работает очень хорошо для меня! Единственная проблема заключается в том, что он требует немного ресурсов и время от времени блокирует SSMS. Может быть из-за моей VPN или машины. Я буду продолжать использовать его, хотя! - person JoeFletch; 10.09.2013

SQLPrompt от Red-Gate отлично справляется со своей задачей во всех версиях (2000, 2005 и 2008), а также работает внутри VS и даже в некоторых текстовых редакторах.

person Dave    schedule 30.10.2008

Это правда, что intellisense в SSMS работает только для SQL Server 2008.

Недавно мы выпустили инструмент автозаполнения для SSMS — dbForge SQL Complete, , обеспечивающий функции автозаполнения и форматирования SQL для SQL Server 2008, 2005 и 2000.

dbForge SQL Complete — основной вид

person Devart    schedule 01.12.2010

Я не думаю, что это можно обойти (хотя я могу ошибаться), но это может помочь вам в поисках истины ;-)

Похоже, intellisense предлагал «неправильный» синтаксис для баз данных до 2008 года во время CTP и был удален в RTM.

person DilbertDave    schedule 30.10.2008
comment
Обновил мой ответ корневой ссылкой от Microsoft. - person DilbertDave; 30.10.2008

Мы с коллегой установили SQL Server Management Studio 2008, и мы оба подключаемся к одним и тем же базам данных SQL Server 2005 и 2008. Он получает intellisense как за 2005, так и за 2008 год. Я получаю только за 2008 год. Мы не можем понять, почему это так.

ПОПРАВКА: Оказывается, мой коллега думал, что подключается к серверу 2005 года, но на самом деле это был сервер 2008 года.

Вывод: после консультации с нашими администраторами баз данных это оказалось невозможным. Они также провели обширное исследование по этому вопросу.

person Guy    schedule 30.10.2008

Если вы установили правильную версию и до сих пор не используете Intellisense это может вам помочь.

1) Убедитесь, что вы подключены к SQL Server 2008 Edition. IntelliSense не работает с предыдущими версиями SQL Server.

2) IntelliSense должен быть включен. Есть два способа проверить, включен ли IntelliSense. a) На панели инструментов b) Перейдите в Инструменты -> Параметры -> Текстовый редактор -> Transact-SQL -> IntelliSense.

3) IntelliSense должен быть обновлен с учетом последних изменений в базе данных.
а) Нажмите CTRL+SHIFT+R б) Выберите Правка -> IntelliSense -> Обновить локальный кэш

4) Перейдите в Инструменты -> Параметры -> Текстовый редактор -> Transact-SQL -> Общие -> IntelliSense. Выберите элементы автоматического списка и проверьте информацию о параметрах.

person CharithJ    schedule 23.05.2011
comment
Спасибо за указание на необходимость обновить локальный кеш, я сильно запутался, почему у меня появляется красная волнистая линия. - person SteveC; 07.02.2012

в ядре базы данных SQL Server 2008 есть код, поддерживающий функцию intellisense в Management Studio 2008.

Нет, нет. Вы совершенно не правы, и вам следует дать пощечину мокрой рыбой.

Все, что он делает, это опрашивает различные виртуальные таблицы INFORMATION_SCHEMA для обнаружения. Причина, по которой они отключили его в предыдущих версиях, заключается в том, что теоретически это может побудить вас использовать синтаксис, который действителен только в 2005 году, но многие люди использовали его со 100% успехом. Конечно, настоящая причина, по которой они его отключили, заключается в том, что это уменьшило одно из преимуществ обновления ваших серверов до версии 2008 (где они зарабатывают настоящие деньги).

person Community    schedule 05.01.2009
comment
Согласно потоку на Connect, они воспроизвели механизм синтаксического анализа на стороне сервера на стороне клиента. Комментарий, который вы цитируете, на самом деле в основном правильный. - person Rick; 08.03.2010

Вы можете использовать intellisense в DbOctopus — он также работает с SQL Server 2005 и 2000. В настоящее время это бесплатно, но только до 1 сентября 2009 года.

Вы можете найти это здесь:

http://www.cogin.com/dboctopus/

person Community    schedule 01.07.2009

Кстати, недавно мы выпустили новую версию SQL Complete, которая предлагает кучу новые возможности. Все новые функции доступны в условно-бесплатной версии Standard Edition (30-дневная бесплатная пробная версия, 49,95 долларов США).

Вы по-прежнему можете получить все базовые функции, аналогичные версии 1.0, в Express Edition.

person Devart    schedule 26.01.2011

Думайте не столько о том, что они отключили IntelliSense в SQL Server 2005, сколько о том, что SQL Server 2005 не был создан с учетом поддержки IntelliSense; в ядре базы данных SQL Server 2008 есть код, поддерживающий функцию intellisense в Management Studio 2008.

Да, я знаю, что это казалось работающим в более поздних предварительных версиях CTP, но некоторые поиски в Google (и ссылка DilbertDave) показывают, что было несколько способов, которыми поведение CTP было нарушено.

person Joel Coehoorn    schedule 30.10.2008

Просто используйте жабу, это намного лучше, чем любой инструмент Microsoft. Есть бесплатная версия.

Toad Soft

person user32415    schedule 30.10.2008
comment
Может быть, ничего: прошло около 4 лет с тех пор, как мне в последний раз приходилось его использовать. Но у меня остались очень неприятные воспоминания об этом опыте. - person Joel Coehoorn; 30.10.2008
comment
Да, первые версии были ужасны, попробуйте еще раз, теперь все очень стабильно. - person user32415; 12.11.2008
comment
но есть ли у него интеллект? - person Maslow; 01.07.2009

Я пользуюсь бесплатным программным обеспечением Atlantis SQL Enywhere почти больше года, и оно меня очень впечатлило. Работает с версиями SQL 2005 и SQL 2008. Я действительно впечатлен его функциями, а сочетания клавиш похожи на VS, поэтому переход к новому редактору действительно плавный.

Некоторые особенности, о которых стоит упомянуть.

Intellisense, который действительно работает при использовании нескольких таблиц и объединений с псевдонимами Предложение объединений при использовании нескольких таблиц (сокращает время ввода, очень аккуратно) Богатое форматирование кода sql, AutoIndent с использованием Ctrl K, Ctrl D. Лучшее представление планов SQL. Подсвечивает объявления переменных во время их использования. Определение таблицы при наведении мыши.

Все эти функции сэкономили мне много времени.

Еще не проверял это на SQL 2012.

person user_v    schedule 23.10.2013