次の方法で共有


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

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

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

Transact-SQL の IntelliSense では、特に一般的な Transact-SQL ステートメントのみがサポートされます。いくつかの一般的な状態が原因で IntelliSense が動作しなくなる場合があります。詳細については、「Transact-SQL IntelliSense のトラブルシューティング」を参照してください。

注意

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

SELECT ステートメント

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

SELECT

WHERE

FROM

ORDER BY

HAVING

UNION

FOR

GROUP BY

TOP

OPTION (ヒント)

サポートされているその他の Transact-SQL ステートメント

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 ステートメントのいずれかで使用されている場合、Transact-SQL エディターの 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 のスクリプトまたはバッチ内では、このトピックに記載されているステートメントと構文のみが 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 ステートメントに指定されているオブジェクトがサポートされます。ただし、これらのオブジェクトは、ステートメントが実行されていないためデータベースに存在しません。たとえば、Transact-SQL エディターで次のコードを入力します。

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

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

関連項目

その他の技術情報

Transact-SQL IntelliSense の概要

Transact-SQL の区切り記号の照合の使用

Transact-SQL コード スニペットの使用

Transact-SQL IntelliSense のトラブルシューティング