次の方法で共有


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)」を参照してください。

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

SELECT ステートメント

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

選択する

どこ

差出人

ORDER BY

HAVING

組合

対して

GROUP BY

ページのトップへ

オプション (ヒント)

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

データベース エンジン クエリ エディターでは、IntelliSense によって、次の表に示す Transact-SQL ステートメントもサポートされています。

Transact-SQL ステートメント サポートされている構文 例外
挿入する execute_statement 句を除くすべての構文。 なし
更新 すべての構文。 なし
削除 すべての構文。 なし
DECLARE @local_variable すべての構文。 なし
SET @local_variable すべての構文。 なし
実行する ユーザー定義ストアド プロシージャ、システム ストアド プロシージャ、ユーザー定義関数、およびシステム関数の実行。 なし
テーブルを作成 すべての構文。 なし
CREATE VIEW すべての構文。 なし
CREATE PROCEDURE すべての構文。 IntelliSense では EXTERNAL NAME 句をサポートしていません。

AS 句では、このトピックに記載されているステートメントと構文のみが IntelliSense によってサポートされます。
ALTER PROCEDURE すべての構文。 IntelliSense では EXTERNAL NAME 句をサポートしていません。

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

サポートされているステートメントでの 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 を利用できますが、 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 により選択リストに PrimaryKeyColMyTable、および MyTestDB が可能な要素として表示されます。