Синтаксис языка Transact-SQL, поддерживаемый технологией IntelliSense
В этом разделе описываются инструкции Transact-SQL и элементы синтаксиса, поддерживаемые IntelliSense в SQL Server 2014.
Инструкции, поддерживаемые технологией IntelliSense
В SQL Server 2014 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 . |
UPDATE | Все синтаксические конструкции. |
DELETE | Все синтаксические конструкции. |
DECLARE @local_variable | Все синтаксические конструкции. |
SET @local_variable | Все синтаксические конструкции. |
EXECUTE | Выполнение определяемых пользователем хранимых процедур, системных хранимых процедур, определяемых пользователем функций и системных функций. |
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 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
После ввода инструкции SELECT
технология IntelliSense выдаст список, содержащий в качестве возможных вариантов выбора PrimaryKeyCol, FirstNameColи LastNameCol даже в том случае, если скрипт еще не выполнялся и таблица MyTable
пока не существует в базе данных MyTestDB
.