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


Синтаксис языка Transact-SQL, поддерживаемый технологией IntelliSense

Применимо к: SQL Server Azure SQL DatabaseУправляемый экземпляр SQL AzureAzure Synapse Analytics AnalyticsPlatform System (PDW)

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

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

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

Примечание

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

Инструкция SELECT

Редактор запросов компонента Компонент Database Engine обеспечивает поддержку технологии IntelliSense для следующих синтаксических элементов в инструкции SELECT:

SELECT

WHERE

FROM

ORDER BY

HAVING

UNION

FOR

GROUP BY

В начало

OPTION (указание)

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

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

Инструкция Transact-SQL Поддерживаемый синтаксис Исключения
INSERT Все синтаксические конструкции, кроме предложения execute_statement . None
UPDATE Все синтаксические конструкции. None
DELETE Все синтаксические конструкции. None
DECLARE @local_variable Все синтаксические конструкции. None
SET @local_variable Все синтаксические конструкции. None
EXECUTE Выполнение определяемых пользователем хранимых процедур, системных хранимых процедур, определяемых пользователем функций и системных функций. None
CREATE TABLE Все синтаксические конструкции. None
CREATE VIEW Все синтаксические конструкции. None
CREATE PROCEDURE Все синтаксические конструкции. Для предложения EXTERNAL NAME технология IntelliSense не поддерживается.

В предложении AS технология IntelliSense поддерживается только для тех инструкций и синтаксических конструкций, которые перечислены в этом разделе.
ALTER PROCEDURE Все синтаксические конструкции Для предложения EXTERNAL NAME технология IntelliSense не поддерживается.

В предложении AS технология IntelliSense поддерживается только для тех инструкций и синтаксических конструкций, которые перечислены в этом разделе.
USE Все синтаксические конструкции. None

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

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

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

  • PIVOT и UNPIVOT

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

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

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

    • Столбцы

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

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

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

    • Обобщенные табличные выражения

  • Объекты базы данных, ссылки на которые имеются только в инструкциях 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   

После ввода инструкции SELECTтехнология IntelliSense выдаст список, содержащий в качестве возможных вариантов выбора PrimaryKeyCol, FirstNameColи LastNameCol даже в том случае, если скрипт еще не выполнялся и таблица MyTable пока не существует в базе данных MyTestDB.