Поделиться через


синтаксис Transact-SQL, поддерживаемый IntelliSense

В этом разделе описаны операторы Transact-SQL и элементы синтаксиса, поддерживаемые IntelliSense в SQL Server 2014.

Инструкции, поддерживаемые IntelliSense

В SQL Server 2014 IntelliSense поддерживает только наиболее часто используемые инструкции Transact-SQL. Некоторые общие условия редактора запросов ядра СУБД могут предотвратить работу IntelliSense. Дополнительные сведения смотрите в разделе Устранение неполадок IntelliSense (SQL Server Management Studio).

Замечание

IntelliSense недоступен для зашифрованных объектов базы данных, таких как зашифрованные хранимые процедуры или определяемые пользователем функции. Справка по параметрам и краткие сведения недоступны для параметров расширенных хранимых процедур и определяемых пользователем типов интеграции CLR.

Инструкция SELECT

Редактор запросов ядра СУБД предоставляет поддержку IntelliSense для следующих элементов синтаксиса в инструкции SELECT:

ВЫБЕРИТЕ ГДЕ
ОТ ORDER BY (СОРТИРОВАТЬ ПО)
ОБЛАДАНИЕ СОЮЗ
ДЛЯ ГРУППИРОВКА ПО
Вверх ВАРИАНТ (подсказка)

Дополнительные инструкции Transact-SQL, поддерживаемые

Редактор запросов ядра СУБД также предоставляет поддержку IntelliSense для инструкций Transact-SQL, отображаемых в следующей таблице.

заявление Transact-SQL Поддерживаемый синтаксис
ВСТАВКА Весь синтаксис, кроме условия execute_statement.
ОБНОВЛЯТЬ Весь синтаксис.
УДАЛИТЬ Весь синтаксис.
DECLARE @local_variable Весь синтаксис.
SET @local_variable Весь синтаксис.
Выполнить Выполнение определяемых пользователем хранимых процедур, системных хранимых процедур, определяемых пользователем функций и системных функций.
СОЗДАТЬ ТАБЛИЦУ Весь синтаксис.
СОЗДАТЬ ПРЕДСТАВЛЕНИЕ Весь синтаксис.
СОЗДАТЬ ПРОЦЕДУРУ Весь синтаксис со следующими исключениями:

Поддержка IntelliSense для предложения EXTERNAL NAME отсутствует.

В конструкции AS IntelliSense поддерживает только те операторы и синтаксис, которые перечислены в этом разделе.
ALTER PROCEDURE Весь синтаксис со следующими исключениями:

Поддержка IntelliSense для предложения EXTERNAL NAME отсутствует.

В конструкции AS IntelliSense поддерживает только те операторы и синтаксис, которые перечислены в этом разделе.
ИСПОЛЬЗОВАНИЕ Весь синтаксис.

IntelliSense в поддерживаемых инструкциях

IntelliSense в редакторе запросов ядра СУБД поддерживает следующие элементы синтаксиса, если они используются в одной из поддерживаемых инструкций Transact-SQL:

  • Все типы соединений, включая APPLY

  • PIVOT и UNPIVOT

  • Ссылки на следующие объекты базы данных:

    • Базы данных и схемы

    • Таблицы, представления, табличное значение функций и табличные выражения

    • Колонны

    • Процедуры и параметры процедур

    • Скалярные функции и скалярные выражения

    • Локальные переменные

    • Распространенные табличные выражения (CTE)

  • Объекты базы данных, на которые ссылаются только инструкции CREATE или ALTER в скрипте или пакете, но которые не существуют в базе данных, так как скрипт или пакет еще не запущен. Эти объекты приведены следующим образом:

    • Таблицы и процедуры, указанные в инструкции CREATE TABLE или CREATE PROCEDURE в скрипте или пакете.

    • Изменения таблиц и процедур, указанных в инструкции ALTER TABLE или ALTER PROCEDURE в скрипте или пакете.

    Замечание

    IntelliSense недоступен для столбцов инструкции CREATE VIEW до выполнения инструкции CREATE VIEW.

IntelliSense не предоставляется для ранее перечисленных элементов, когда они используются в других инструкциях Transact-SQL. Например, существует поддержка IntelliSense для имен столбцов, используемых в инструкции SELECT, но не существует для столбцов, используемых в инструкции CREATE FUNCTION.

Примеры

В сценарии или пакете Transact-SQL IntelliSense в редакторе запросов ядра базы данных поддерживает только те инструкции и синтаксис, которые перечислены в этом разделе. В следующих Transact-SQL примерах кода показывается, какие операторы и элементы синтаксиса поддерживает IntelliSense. Например, в следующем пакете IntelliSense доступен для инструкции SELECT, когда она закодирована самостоятельно, но не когда SELECT содержится в инструкции CREATE FUNCTION.

USE AdventureWorks2012;  
GO  
SELECT Name  
FROM Production.Product  
WHERE Name LIKE N'Road-250%' and Color = N'Red';  
GO  
CREATE FUNCTION Production.ufn_Red250 ()  
RETURNS TABLE  
AS  
RETURN   
(  
    SELECT Name  
    FROM AdventureWorks2012.Production.Product  
    WHERE Name LIKE N'Road-250%'  
      AND Color = N'Red'  
);GO  

Эта функция также применяется к наборам инструкций Transact-SQL в предложении AS инструкции CREATE PROCEDURE или ALTER PROCEDURE.

В Transact-SQL скрипте или пакете IntelliSense поддерживает объекты, указанные в инструкции CREATE или ALTER; однако эти объекты не существуют в базе данных, так как инструкции не были выполнены. Например, в редакторе запросов можно ввести следующий код:

USE MyTestDB;  
GO  
CREATE TABLE MyTable  
    (PrimaryKeyCol   INT PRIMARY KEY,  
    FirstNameCol      NVARCHAR(50),  
   LastNameCol       NVARCHAR(50));  
GO  
SELECT   

После ввода SELECTIntelliSense выводит список PrimaryKeyCol, FirstNameColи LastNameCol как возможные элементы в списке выбора, даже если скрипт не был выполнен и MyTable еще не существует в MyTestDB.