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

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

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

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

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

Note

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 ステートメントで指定されているテーブルおよびプロシージャに対する変更。

    Note

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

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

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

USE AdventureWorks2022;  
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 AdventureWorks2022.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   

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