IntelliSense でサポートされている Transact-SQL 構文

このトピックでは、SQL Server 2008 の IntelliSense でサポートされる Transact-SQL ステートメントと構文要素について説明します。

IntelliSense でサポートされるステートメント

SQL Server 2008 の IntelliSense では、特に一般的な Transact-SQL ステートメントのみがサポートされます。いくつかの一般的なデータベース エンジン クエリ エディタの状態が原因で IntelliSense が動作しなくなる場合があります。詳細については、「IntelliSense が利用できない場合」を参照してください。

注意注意

IntelliSense は、暗号化されたデータベース オブジェクト (たとえば暗号化されたストアド プロシージャまたはユーザー定義関数) に対しては利用できません。拡張されたストアド プロシージャおよび CLR 統合のユーザー定義型のパラメータに対しては、パラメータのヘルプおよびクイック ヒントを利用できません。

SELECT ステートメント

データベース エンジン クエリ エディタでは、IntelliSense によって、SELECT ステートメント内の次の構文要素がサポートされます。

SELECT

WHERE

FROM

ORDER BY

HAVING

UNION

FOR

GROUP BY

TOP

OPTION (hint)

サポートされているその他の 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

すべての構文。ただし、次の例外があります。

  • IntelliSense では EXTERNAL NAME 句をサポートしていません。

  • AS 句では、このトピックに記載されているステートメントと構文のみが IntelliSense によってサポートされます。

ALTER PROCEDURE

すべての構文。ただし、次の例外があります。

  • IntelliSense では EXTERNAL NAME 句をサポートしていません。

  • AS 句では、このトピックに記載されているステートメントと構文のみが IntelliSense によってサポートされます。

USE

すべての構文。

サポートされているステートメントでの IntelliSense

次の構文要素は、サポートされている Transact-SQL ステートメントのいずれかで使用されている場合、データベース エンジン クエリ エディタの IntelliSense によってサポートされます。

  • すべての結合の種類 (APPLY など)。

  • PIVOT および UNPIVOT。

  • 次のデータベース オブジェクトへの参照。

    • データベースおよびスキーマ

    • テーブル、ビュー、テーブル値関数、およびテーブル式

    • プロシージャおよびプロシージャ パラメータ

    • スカラ関数およびスカラ式

    • ローカル変数

    • 共通テーブル式 (CTE)

  • スクリプトまたはバッチ内の CREATE ステートメントまたは ALTER ステートメントのみで参照されるデータベース オブジェクト。ただし、スクリプトまたはバッチがまだ実行されていないためデータベースには存在しません。これらのオブジェクトを次に示します。

    • スクリプトまたはバッチ内の CREATE TABLE ステートメントまたは CREATE PROCEDURE ステートメントで指定されているテーブルおよびプロシージャ。

    • スクリプトまたはバッチ内の ALTER TABLE ステートメントまたは ALTER PROCEDURE ステートメントで指定されているテーブルおよびプロシージャに対する変更。

    注意注意

    IntelliSense は、CREATE VIEW ステートメントが実行されるまでは CREATE VIEW ステートメントの列に対して利用できません。

前に示した要素が他の Transact-SQL ステートメント内で使用されている場合、IntelliSense は提供されません。たとえば、SELECT ステートメント内で使用されている列名に対しては IntelliSense のサポートがありますが、CREATE FUNCTION ステートメント内で使用されている列に対してはサポートがありません。

使用例

Transact-SQL のスクリプトまたはバッチ内では、このトピックに記載されているステートメントと構文のみがデータベース エンジン クエリ エディタの IntelliSense によってサポートされています。IntelliSense でサポートされるステートメントと構文要素を次の Transact-SQL のコード例に示します。たとえば、次のバッチにおいて、SELECT ステートメントが単独で記述されているときは IntelliSense を利用できますが、SELECT が CREATE FUNCTION ステートメントに含まれているときは IntelliSense を利用できません。

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

この機能は、CREATE PROCEDURE ステートメントまたは ALTER PROCEDURE ステートメントの AS 句に含まれる Transact-SQL ステートメントのセットにも適用されます。

Transact-SQL のスクリプトまたはバッチ内では、IntelliSense によって、CREATE ステートメントまたは ALTER ステートメントに指定されているオブジェクトがサポートされます。ただし、これらのオブジェクトは、ステートメントが実行されていないためデータベースに存在しません。たとえば、クエリ エディタで次のコードを入力します。

USE MyTestDB;
GO
CREATE TABLE MyTable
    (PrimaryKeyCol   INT PRIMARY KEY,
    FirstNameCol      NVARCHAR(50),
   LastNameCol       NVARCHAR(50));
GO
SELECT 

スクリプトが実行されていないため MyTable が MyTestDB に存在しない場合でも、SELECT を入力すると、IntelliSense により、使用可能な要素として PrimaryKeyColFirstNameCol、および LastNameCol が選択リストに表示されます。

関連項目

その他の技術情報