Синтаксис языка Transact-SQL, поддерживаемый технологией IntelliSense
В этом разделе описываются инструкции и элементы синтаксиса Transact-SQL, которые поддерживаются технологией IntelliSense в SQL Server 2008.
Инструкции, поддерживаемые технологией IntelliSense
В SQL Server 2008 технология IntelliSense поддерживается только для наиболее часто используемых инструкций Transact-SQL. Некоторые общие условия редактора запросов Database Engine могут блокировать работу технологии IntelliSense. Дополнительные сведения см. в разделе Если технология IntelliSense недоступна.
![]() |
---|
Технология IntelliSense недоступна для зашифрованных объектов баз данных, например зашифрованных хранимых процедур или определяемых пользователем функций. Справка и краткие сведения по параметрам недоступны для параметров расширенных хранимых процедур и пользовательских типов при интеграции со средой CLR. |
Инструкция SELECT
Редактор запросов компонента Database Engine обеспечивает поддержку технологии IntelliSense для следующих синтаксических элементов в инструкции SELECT:
SELECT |
WHERE |
FROM |
ORDER BY |
HAVING |
UNION |
FOR |
GROUP BY |
TOP |
OPTION (подсказка) |
Дополнительные поддерживаемые инструкции Transact-SQL
Редактор запросов компонента Database Engine также обеспечивает поддержку технологии IntelliSense для инструкций Transact-SQL, приведенных в следующей таблице.
Инструкция Transact-SQL |
Поддерживаемый синтаксис |
---|---|
Все синтаксические конструкции, кроме предложения execute_statement. |
|
Все синтаксические конструкции. |
|
Все синтаксические конструкции. |
|
Все синтаксические конструкции. |
|
Все синтаксические конструкции. |
|
Выполнение определяемых пользователем хранимых процедур, системных хранимых процедур, определяемых пользователем функций и системных функций. |
|
Все синтаксические конструкции. |
|
Все синтаксические конструкции. |
|
Все синтаксические конструкции, кроме следующих.
|
|
Все синтаксические конструкции, кроме следующих.
|
|
Все синтаксические конструкции. |
Технология IntelliSense в поддерживаемых инструкциях
В редакторе запросов компонента Database Engine технология 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 в редакторе запросов Database Engine поддерживается только для тех инструкций и синтаксических конструкций, которые перечислены в этом разделе. В следующих примерах кода Transact-SQL показано, для каких инструкций и элементов синтаксиса поддерживается технология IntelliSense. Например, в следующем пакете технология IntelliSense доступна для инструкции SELECT, когда она используется в коде самостоятельно, а не содержится в инструкции CREATE FUNCTION.
USE AdventureWorks;
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 AdventureWorks.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.