このトピックでは、SQL Server 2014 の IntelliSense でサポートされる Transact-SQL ステートメントと構文要素について説明します。
IntelliSense でサポートされるステートメント
SQL Server 2014 では、IntelliSense は最もよく使用される Transact-SQL ステートメントのみをサポートします。 いくつかの一般的な データベース エンジン クエリ エディターの状態が原因で IntelliSense が動作しなくなる場合があります。 詳細については、「IntelliSense のトラブルシューティング (SQL Server Management Studio)」を参照してください。
注
IntelliSense は、暗号化されたデータベース オブジェクト (たとえば暗号化されたストアド プロシージャまたはユーザー定義関数) に対しては利用できません。 拡張されたストアド プロシージャおよび CLR 統合のユーザー定義型のパラメーターに対しては、パラメーターのヘルプおよびクイック ヒントを利用できません。
SELECT ステートメント
データベース エンジン クエリ エディターでは、IntelliSense によって、SELECT ステートメント内の次の構文要素がサポートされます。
| SELECT | どこ |
| 差出人 | ORDER BY(並び替え) |
| 持っている | 組合 |
| 対して | GROUP BY(グループ化するSQLコマンド) |
| ページのトップへ | オプション (ヒント) |
サポートされているその他の Transact-SQL ステートメント
データベース エンジン クエリ エディターでは、IntelliSense によって、次の表に示す Transact-SQL ステートメントもサポートされています。
| Transact-SQL ステートメント | サポートされている構文 |
|---|---|
| INSERT | execute_statement 句を除くすべての構文。 |
| UPDATE | すべての構文。 |
| DELETE | すべての構文。 |
| DECLARE @local_variable | すべての構文。 |
| SET @local_variable | すべての構文。 |
| 実行する | ユーザー定義ストアド プロシージャ、システム ストアド プロシージャ、ユーザー定義関数、およびシステム関数の実行。 |
| CREATE TABLE | すべての構文。 |
| 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 ステートメントで指定されたテーブルとプロシージャに対する変更。
注
CREATE VIEW ステートメントが実行されるまで、CREATE VIEW ステートメントの列には IntelliSense を使用できません。
前に示した要素が他の Transact-SQL ステートメント内で使用されている場合、IntelliSense は提供されません。 たとえば、SELECT ステートメントで使用される列名は IntelliSense でサポートされますが、 CREATE FUNCTION ステートメントで使用される列にはサポートされません。
例示
Transact-SQL のスクリプトまたはバッチ内では、このトピックに記載されているステートメントと構文のみが データベース エンジン クエリ エディターの IntelliSense によってサポートされています。 IntelliSense でサポートされるステートメントと構文要素を次の Transact-SQL のコード例に示します。 たとえば、次のバッチにおいて、 SELECT ステートメントが単独で記述されているときは IntelliSense を利用できますが、 SELECT が CREATE FUNCTION ステートメントに含まれているときは IntelliSense を利用できません。
USE AdventureWorks2012;
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 AdventureWorks2012.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 により選択リストに PrimaryKeyCol、MyTable、および MyTestDB が可能な要素として表示されます。