IntelliSense 支持的 Transact-SQL 语法
适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Azure Synapse Analytics
Analytics 平台系统(PDW)
本主题介绍 SQL Server 中 IntelliSense 支持的 Transact-SQL 语句和语法元素。
IntelliSense 支持的语句
在 SQL Server 中,IntelliSense 仅支持最常用的 Transact-SQL 语句。 某些常规数据库引擎查询编辑器条件可能会阻止 IntelliSense 正常工作。 有关详细信息,请参阅 IntelliSense 故障排除(SQL Server Management Studio)。
注意
IntelliSense 不适用于加密的数据库对象,例如加密存储过程或用户定义的函数。 参数帮助和快速信息不适用于扩展存储过程和 CLR 集成用户定义类型的参数。
SELECT 语句
数据库引擎查询编辑器为 SELECT 语句中的以下语法元素提供 IntelliSense 支持:
选择
哪里
从
排序依据
有
联盟
为
GROUP BY
返回页首
选项(提示)
支持的其他 Transact-SQL 语句
数据库引擎查询编辑器还为下表中显示的 Transact-SQL 语句提供 IntelliSense 支持。
Transact-SQL 语句 | 支持的语法 | 异常 |
---|---|---|
INSERT | 除 execute_statement 子句之外的所有语法。 | 没有 |
更新 | 所有语法。 | 没有 |
删除 | 所有语法。 | 没有 |
DECLARE @local_variable | 所有语法。 | 没有 |
SET @local_variable | 所有语法。 | 没有 |
EXECUTE | 执行用户定义的存储过程、系统存储过程、用户定义函数和系统函数。 | 没有 |
创建表 | 所有语法。 | 没有 |
CREATE VIEW | 所有语法。 | 没有 |
CREATE PROCEDURE | 所有语法。 | 没有对 EXTERNAL NAME 子句的 IntelliSense 支持。 在 AS 子句中,IntelliSense 仅支持本主题中列出的语句和语法。 |
ALTER PROCEDURE | 所有语法 | 没有对 EXTERNAL NAME 子句的 IntelliSense 支持。 在 AS 子句中,IntelliSense 仅支持本主题中列出的语句和语法。 |
USE | 所有语法。 | 没有 |
支持的语句中的 IntelliSense
数据库引擎查询编辑器中的 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 脚本或批处理中,数据库引擎查询编辑器中的 IntelliSense 仅支持本主题中列出的语句和语法。 以下 Transact-SQL 代码示例显示了 IntelliSense 支持的语句和语法元素。 例如,在以下批处理中,IntelliSense 可在 SELECT
语句单独编码时使用,但在 SELECT
包含于 CREATE FUNCTION
语句中时不可用。
USE AdventureWorks2022;
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 AdventureWorks2022.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
中尚不存在。