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


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

Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)

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

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

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

Примечание.

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

Инструкция SELECT

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

SELECT

WHERE

FROM

ORDER BY

HAVING

UNION

FOR

GROUP BY

TOP

OPTION (указание)

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

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

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

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

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

Технология 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.