本主題描述 SQL Server 2014 中 IntelliSense 支援的 Transact-SQL 語句和語法元素。
IntelliSense 支援的語句
在 SQL Server 2014 中,IntelliSense 僅支援最常使用的 Transact-SQL 語句。 某些一般 Database Engine 查詢編輯器條件可能會防止 IntelliSense 運作。 如需詳細資訊,請參閱針對 IntelliSense 進行疑難解答(SQL Server Management Studio)。
備註
IntelliSense 不適用於加密的資料庫物件,例如加密預存程式或使用者定義函式。 參數說明和快速諮詢不適用於擴充預存程式和 CLR 整合使用者定義型別的參數。
SELECT 語句
Database Engine 查詢編輯器提供 SELECT 語句中下列語法元素的 IntelliSense 支援:
| 選擇 | 哪裡 |
| 來自 | 排序依據 |
| 擁有 | 聯盟 |
| 為了 | GROUP BY |
| 頁首 | OPTION (提示) |
支援的其他 Transact-SQL 語句
Database Engine 查詢編輯器也提供 IntelliSense 支援下表所示的 Transact-SQL 語句。
| Transact-SQL 語句 | 支援的語法 |
|---|---|
| 插入 | 除了 execute_statement 子句之外的所有語法。 |
| 更新 | 所有語法。 |
| 刪除 | 所有語法。 |
| DECLARE @local_variable | 所有語法。 |
| SET @local_variable | 所有語法。 |
| 執行 | 執行使用者定義的預存程式、系統預存程式、使用者定義函數和系統函式。 |
| 建立資料表 | 所有語法。 |
| CREATE VIEW | 所有語法。 |
| 建立程序 (CREATE PROCEDURE) | 所有語法,但有下列例外狀況: EXTERNAL NAME 子句沒有 IntelliSense 支援。 在 AS 子句中,IntelliSense 僅支援本主題中列出的語句和語法。 |
| ALTER PROCEDURE | 所有語法,但有下列例外狀況: EXTERNAL NAME 子句沒有 IntelliSense 支援。 在 AS 子句中,IntelliSense 僅支援本主題中列出的語句和語法。 |
| 使用 | 所有語法。 |
支持的語句中的 IntelliSense
Database Engine 查詢編輯器中的 IntelliSense 在其中一個支援的 Transact-SQL 語句中使用時,支援下列語法元素:
所有聯結類型,包括APPLY
PIVOT 和 UNPIVOT
下列資料庫物件的參考:
資料庫和架構
數據表、檢視表、數據表值函式和數據表運算式
欄位
程序和程序參數
純量函式和純量表達式
局部變數
通用資料表表示式 (CTE)
只有在腳本或批次的 CREATE 或 ALTER 語句中參考的資料庫物件,但資料庫中不存在,因為腳本或批次尚未執行。 這些物件如下所示:
腳本或批次中 CREATE TABLE 或 CREATE PROCEDURE 語句中指定的數據表和程式。
變更腳本或批次中 ALTER TABLE 或 ALTER PROCEDURE 語句中指定的數據表和程式。
備註
在 CREATE VIEW 語句執行之前,IntelliSense 不適用於 CREATE VIEW 語句的數據行。
當先前列出的元素用於其他 Transact-SQL 語句時,將不會提供 IntelliSense。 例如,IntelliSense 支援在 SELECT 語句中使用的欄位名稱,但不支援在 CREATE FUNCTION 語句中使用的欄位名稱。
範例
在 Transact-SQL 腳本或批次內,Database Engine 查詢編輯器中的 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 列為選取清單中的可能元素,即使腳本尚未執行且尚未存在於 中MyTableMyTestDB也一樣。