IntelliSense でサポートされている Transact-SQL 構文
このトピックでは、SQL Server 2008 の IntelliSense でサポートされる Transact-SQL ステートメントと構文要素について説明します。
IntelliSense でサポートされるステートメント
SQL Server 2008 の IntelliSense では、特に一般的な Transact-SQL ステートメントのみがサポートされます。いくつかの一般的なデータベース エンジン クエリ エディターの状態が原因で IntelliSense が動作しなくなる場合があります。詳細については、「Transact-SQL IntelliSense のトラブルシューティング」を参照してください。
注 |
---|
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 ステートメント |
サポートされている構文 |
---|---|
execute_statement 句を除くすべての構文。 |
|
すべての構文。 |
|
すべての構文。 |
|
すべての構文。 |
|
すべての構文。 |
|
ユーザー定義ストアド プロシージャ、システム ストアド プロシージャ、ユーザー定義関数、およびシステム関数の実行。 |
|
すべての構文。 |
|
すべての構文。 |
|
すべての構文。ただし、次の例外があります。
|
|
すべての構文。ただし、次の例外があります。
|
|
すべての構文。 |
サポートされているステートメントでの 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 を利用できますが、SELECT が CREATE FUNCTION ステートメントに含まれているときは IntelliSense を利用できません。
USE AdventureWorks2008R2;
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 AdventureWorks2008R2.Production.Product
WHERE Name LIKE N'Road-250%'
AND Color = N'Red'
);GO
USE AdventureWorks2008R2;
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 AdventureWorks2008R2.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
USE MyTestDB;
GO
CREATE TABLE MyTable
(PrimaryKeyCol INT PRIMARY KEY,
FirstNameCol NVARCHAR(50),
LastNameCol NVARCHAR(50));
GO
SELECT
スクリプトが実行されていないため MyTable が MyTestDB に存在しない場合でも、SELECT を入力すると、IntelliSense により、使用可能な要素として PrimaryKeyCol、FirstNameCol、および LastNameCol が選択リストに表示されます。