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


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

Поддерживаемый синтаксис

INSERT

Все синтаксические конструкции, кроме предложения execute_statement.

UPDATE

Все синтаксические конструкции.

DELETE

Все синтаксические конструкции.

DECLARE @локальная_переменная

Все синтаксические конструкции.

SET @local_variable

Все синтаксические конструкции.

EXECUTE

Выполнение определяемых пользователем хранимых процедур, системных хранимых процедур, определяемых пользователем функций и системных функций.

CREATE TABLE

Все синтаксические конструкции.

CREATE VIEW

Все синтаксические конструкции.

CREATE PROCEDURE

Все синтаксические конструкции, кроме следующих.

  • Для предложения EXTERNAL NAME технология IntelliSense не поддерживается.

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

ALTER PROCEDURE

Все синтаксические конструкции, кроме следующих.

  • Для предложения EXTERNAL NAME технология IntelliSense не поддерживается.

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

USE

Все синтаксические конструкции.

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

См. также

Другие ресурсы