Устранение неполадок технологии IntelliSense для Transact-SQL
В некоторых случаях параметры технологии IntelliSense могут работать не так, как ожидается.
Доступность в оперативном и автономном состоянии
Члены списка IntelliSense, завершение слов, сведения о параметрах и быстрая справка доступны только в редакторе Transact-SQL при выполнении определенных условий. Дополнительные сведения об этих функциях см. в разделе Общие сведения о технологии IntelliSense для Transact-SQL.
Существует два основных фактора, которые определяют доступность этих функций.
Подключение к экземпляру сервера SQL. Во время подключения к экземпляру SQL Server технология IntelliSense доступна. В этом случае метаданные IntelliSense будут получены во время подключения, даже если изменяемый файл связан с проектом базы данных.
Связь с проектом базы данных. Если файл, изменяемый при помощи редактора Transact-SQL, связан с проектом базы данных, технология IntelliSense доступна. В этом случае, если отсутствует подключение к экземпляру SQL Server, метаданные IntelliSense будут получены из объектов базы данных, связанных с проектом.
В следующей таблице приводится описание того, каким образом эти факторы влияют на доступность функций: члены списка, завершение слов, сведения о параметрах и быстрая справка.
Подключение к экземпляру SQL Server |
Связь с проектом базы данных |
Доступность |
Примечания |
---|---|---|---|
Да |
Да |
Да |
IntelliSense на основе соединения |
Да |
Нет |
Да |
IntelliSense на основе соединения |
Нет |
Да |
Да |
IntelliSense на основе проекта |
Нет |
Нет |
Нет |
Если редактор Transact-SQL подключен к экземпляру SQL Server, технология IntelliSense доступна и отображает объекты, связанные с подключением к базе данных. Если редактор Transact-SQL не подключен к экземпляру SQL Server, сведения о технологии IntelliSense будут получены от объектов, связанных с проектом базы данных. Если редактор Transact-SQL не подключен к экземпляру SQL Server и не связан с проектом базы данных, технология IntelliSense недоступна.
Функции обработки IntelliSense и функция фрагмента кода Transact-SQL всегда доступны, даже когда редактор не связан с проектом или не подключен к экземпляру SQL Server.
Другие условия, которые оказывают влияние на IntelliSense
Следующие условия могут повлиять на работу технологии IntelliSense.
Выше позиции курсора есть ошибка кода.
Если в коде выше текущей точки вставки имеется незавершенная инструкция или другая ошибка, то технология IntelliSense может оказаться не в состоянии проанализировать элементы кода и поэтому работать не будет. Чтобы снова включить технологию IntelliSense, можно заключить соответствующий код в комментарий.
Точка вставки находится внутри комментария.
Параметры технологии IntelliSense недоступны в том случае, если точка вставки находится в исходном файле внутри комментария.
Точка вставки находится внутри строкового литерала.
Параметры технологии IntelliSense недоступны в том случае, если точка вставки находится внутри кавычек, содержащих строковый литерал, например:
WHERE FirstName LIKE 'Patri%|'
Эта функция отключена по умолчанию.
Многие функции технологии IntelliSense работают автоматически по умолчанию, но любую из них можно отключить.
Даже если функция завершения слов отключена, можно использовать другие функции технологии IntelliSense. Дополнительные сведения см. в разделе Modifying IntelliSense Options.
Рекомендации для редактора Transact-SQL
При работе с редактором Transact-SQL могут возникнуть следующие проблемы.
Функции IntelliSense редактора Transact-SQL не поддерживают все элементы синтаксиса Transact-SQL. Справка по параметрам не предоставляется по параметрам некоторых объектов, например расширенных хранимых процедур. Дополнительные сведения см. в разделе Синтаксис языка Transact-SQL, поддерживаемый технологией IntelliSense.
Технология IntelliSense недоступна в редакторе Transact-SQL при подключении к версиям SQL Server Database Engine, более ранним, чем SQL Server 2008.
Технология IntelliSense недоступна в редакторе Transact-SQL, если редактор Transact-SQL не связан с проектом и если редактор Transact-SQL не подключен к компоненту Database Engine.
Технология IntelliSense выключена в редакторе Transact-SQL, если режим SQLCMD включен.
Функциональность технологии IntelliSense не охватывает объекты базы данных, созданные в другом соединении, установленном после подключения окна редактора к базе данных. Можно выбрать один из этих трех механизмов для обновления кэша объектов окна редактора.
Во время подключения к экземпляру SQL Server кэш технологии IntelliSense не будет отражать изменения, внесенные при выполнении команд CREATE, ALTER или DROP в отношении этого экземпляра в течение сеанса редактора Transact-SQL. Чтобы обновить кэш технологии IntelliSense, войдите в меню Правка, перейдите в пункт Технология IntelliSense и выберите пункт Обновить локальный кэш.
Или используйте сочетание клавиш CTRL+К и затем CTRL+R.
В списки завершения не включаются объекты базы данных, на которые нет разрешений. Ссылки на объекты, для которых есть разрешения, в технологии IntelliSense отмечаются флагами. Например, если открыть скрипт, написанный другим пользователем, все ссылки на объекты, для которых у другого пользователя есть разрешения, а у вас нет, отмечаются флагами как неверные.
Списки завершения могут перестать функционировать при разрыве соединения с экземпляром компонента SQL Server. В этом случае необходимо восстановить соединение с экземпляром.
См. также
Другие ресурсы
Общие сведения о технологии IntelliSense для Transact-SQL
Использование сопоставления разделителей Transact-SQL
Использование фрагментов кода Transact-SQL
Синтаксис языка Transact-SQL, поддерживаемый технологией IntelliSense