IntelliSense 所支援的 Transact-SQL 語法
本主題描述 SQL Server 2014 中 IntelliSense 支援的 Transact-SQL 語句和語法元素。
IntelliSense 所支援的陳述式
在 SQL Server 2014 中,IntelliSense 僅支援最常使用的 Transact-SQL 語句。 某些一般的資料庫引擎查詢編輯器條件可能會讓 IntelliSense 無法運作。 如需詳細資訊,請參閱疑難排解 IntelliSense (SQL Server Management Studio)。
注意
IntelliSense 不適用於已加密的資料庫物件,例如已加密的預存程序或使用者定義函數。 參數說明和快速資訊不適用於擴充預存程序和 CLR 整合使用者定義型別的參數。
SELECT 陳述式
資料庫引擎查詢編輯器會針對 SELECT 陳述式中的下列語法元素提供 IntelliSense 支援:
SELECT | WHERE |
FROM | 排序依據 |
HAVING | UNION |
FOR | GROUP BY |
頂端 | OPTION (hint) |
其他支援的 Transact-SQL 陳述式
資料庫引擎查詢編輯器也會針對下表所顯示的 Transact-SQL 陳述式提供 IntelliSense 支援。
Transact-SQL 陳述式 | 支援的語法 |
---|---|
INSERT | 所有語法,但 execute_statement 子句除外。 |
UPDATE | 所有語法。 |
DELETE | 所有語法。 |
DECLARE @local_variable | 所有語法。 |
SET @local_variable | 所有語法。 |
EXECUTE | 可執行使用者定義的預存程序、系統預存程序、使用者定義的函數以及系統函數。 |
CREATE TABLE | 所有語法。 |
CREATE VIEW | 所有語法。 |
CREATE PROCEDURE | 所有語法,但有下列例外狀況: EXTERNAL NAME 子句沒有任何 IntelliSense 支援。 在 AS 子句中,IntelliSense 僅支援本主題所列的陳述式和語法。 |
ALTER PROCEDURE | 所有語法,但有下列例外狀況: EXTERNAL NAME 子句沒有任何 IntelliSense 支援。 在 AS 子句中,IntelliSense 僅支援本主題所列的陳述式和語法。 |
USE | 所有語法。 |
支援陳述式中的 IntelliSense
當下列語法元素用於其中一個支援的 Transact-SQL 陳述式時,資料庫引擎查詢編輯器中的 IntelliSense 便支援這些元素:
所有聯結類型,包括 APPLY
PIVOT 和 UNPIVOT
下列資料庫物件的參考:
資料庫和結構描述
資料表、檢視、資料表值函式和資料表運算式
資料行
程序和程序參數
純量函數和純量運算式
區域變數
通用資料表運算式 (CTE)
只在指令碼或批次的 CREATE 或 ALTER 陳述式中參考,但是由於指令碼或批次尚未執行而不存在資料庫中的資料庫物件。 這些物件如下所示:
已經在指令碼或批次的 CREATE TABLE 或 CREATE PROCEDURE 陳述式中指定的資料表和程序。
已經在指令碼或批次的 ALTER TABLE 或 ALTER PROCEDURE 陳述式中指定的資料表和程序變更。
注意
在執行 CREATE VIEW 陳述式之前,IntelliSense 不適用於 CREATE VIEW 陳述式的資料行。
當先前所列的元素用於 Transact-SQL 陳述式時,系統就不會針對它們提供 IntelliSense。 例如,用於 SELECT 陳述式的資料行名稱具有 IntelliSense 支援,但用於 CREATE FUNCTION 陳述式的資料行則沒有。
範例
在 Transact-SQL 指令碼或批次中,資料庫引擎查詢編輯器中的 IntelliSense 僅支援本主題所列的陳述式和語法。 下列 Transact-SQL 程式碼範例將說明 IntelliSense 所支援的陳述式和語法元素。 例如,在下列批次中,當 SELECT
陳述式只有本身的編碼時,IntelliSense 便適用於此陳述式,但是當 SELECT
包含在 CREATE FUNCTION
陳述式內部時,則不適用。
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]和 [LastNameCol] 當做選取清單中的可能元素,即使該指令碼尚未執行而且 MyTable
尚未存在 MyTestDB
中也一樣。