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


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

применимо:SQL ServerAzure SQL база данныхуправляемая экземпляр SQL AzureAzure Synapse AnalyticsПлатформа аналитики данных (PDW)

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

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

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

Заметка

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

Инструкция SELECT

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

ВЫБЕРИТЕ

ГДЕ

ОТ

УПОРЯДОЧИТЬ ПО

ОБЛАДАНИЕ

СОЮЗ

ДЛЯ

ГРУППИРОВКА ПО

ВВЕРХ

ВАРИАНТ (подсказка)

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

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

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

В конструкции AS IntelliSense поддерживает только те операторы и синтаксис, которые перечислены в этом разделе.
ИЗМЕНИТЬ ПРОЦЕДУРУ Весь синтаксис Поддержка 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 AdventureWorks2022;  
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 AdventureWorks2022.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.