IntelliSense でサポートされている Transact-SQL 構文
このトピックでは、SQL Server 2014 で IntelliSense でサポートされている Transact-SQL ステートメントと構文要素について説明します。
IntelliSense でサポートされるステートメント
SQL Server 2014 では、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 を利用できますが、 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、 FirstNameCol 、および MyTable
LastNameCol MyTestDB
が選択リストに表示されます。