Синтаксис языка 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
.