IntelliSense에서 지원되는 Transact-SQL 구문Transact-SQL Syntax Supported by IntelliSense

이 항목 적용 대상: 예SQL Server예Azure SQL 데이터베이스예Azure SQL 데이터 웨어하우스 예 병렬 데이터 웨어하우스THIS TOPIC APPLIES TO: yesSQL ServeryesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse 이 항목에서는 SQL Server 2017SQL Server 2017의 IntelliSense에서 지원하는 Transact-SQLTransact-SQL 문 및 구문 요소에 대해 설명합니다. This topic describes the Transact-SQLTransact-SQL statements and syntax elements that are supported by IntelliSense in SQL Server 2017SQL Server 2017.

IntelliSense에서 지원하는 문Statements Supported by IntelliSense

SQL Server 2017SQL Server 2017에서 IntelliSense는 가장 일반적으로 사용되는 Transact-SQLTransact-SQL 문만 지원합니다.In SQL Server 2017SQL Server 2017, IntelliSense supports only the most commonly used Transact-SQLTransact-SQL statements. 일부 일반적인 데이터베이스 엔진Database Engine 쿼리 편집기 조건으로 인해 IntelliSense가 제대로 작동하지 않을 수 있습니다.Some general 데이터베이스 엔진Database Engine Query Editor conditions might prevent IntelliSense from functioning. 자세한 내용은 IntelliSense 문제 해결(SQL Server Management Studio)을 참조하세요.For more information, see Troubleshooting IntelliSense (SQL Server Management Studio).

참고

암호화된 저장 프로시저 또는 사용자 정의 함수와 같이 암호화된 데이터베이스 개체에 대해 IntelliSense를 사용할 수 없습니다.IntelliSense is not available for encrypted database objects, such as encrypted stored procedures or user-defined functions. 확장 저장 프로시저 및 CLR 통합 사용자 정의 유형의 매개 변수에 대해 매개 변수 도움말 및 요약 정보를 사용할 수 없습니다.Parameter help and Quick Info are not available for the parameters of extended stored procedures and CLR Integration user-defined types.

SELECT 문SELECT Statement

데이터베이스 엔진Database Engine 쿼리 편집기에서는 SELECT 문의 다음 구문 요소에 대한 IntelliSense 지원을 제공합니다.The 데이터베이스 엔진Database Engine Query Editor provides IntelliSense support for the following syntax elements in the SELECT statement:

SELECTSELECT WHEREWHERE
FROMFROM ORDER BYORDER BY
HAVINGHAVING UNIONUNION
FORFOR GROUP BYGROUP BY
맨 위로 이동TOP OPTION (hint)OPTION (hint)

지원되는 추가 Transact-SQL 문Additional Transact-SQL Statements That Are Supported

데이터베이스 엔진Database Engine 쿼리 편집기에서는 다음 표에 표시된 Transact-SQLTransact-SQL 문에 대한 IntelliSense 지원도 제공합니다.The 데이터베이스 엔진Database Engine Query Editor also provides IntelliSense support for Transact-SQLTransact-SQL statements that are shown in the following table.

Transact-SQL 문Transact-SQL statement 지원되는 구문Syntax supported 예외Exceptions
INSERTINSERT execute_statement 절을 제외한 모든 구문All syntax, except the execute_statement clause. 없음None
UPDATEUPDATE 모든 구문All syntax. 없음None
DELETEDELETE 모든 구문All syntax. 없음None
DECLARE @local_variableDECLARE @local_variable 모든 구문All syntax. 없음None
SET @local_variableSET @local_variable 모든 구문All syntax. 없음None
EXECUTEEXECUTE 사용자 정의 저장 프로시저, 시스템 저장 프로시저, 사용자 정의 함수 및 시스템 함수 실행Execution of user-defined stored procedures, system stored procedures, user-defined functions, and system functions. 없음None
CREATE TABLECREATE TABLE 모든 구문All syntax. 없음None
CREATE VIEWCREATE VIEW 모든 구문All syntax. 없음None
CREATE PROCEDURECREATE PROCEDURE 모든 구문All syntax. EXTERNAL NAME 절에 대한 IntelliSense 지원은 없습니다.There is no IntelliSense support for the EXTERNAL NAME clause.

AS 절에서 IntelliSense는 이 항목에 나열된 문과 구문만 지원합니다.In the AS clause, IntelliSense supports only the statements and syntax that are listed in this topic.
ALTER PROCEDUREALTER PROCEDURE 모든 구문All syntax EXTERNAL NAME 절에 대한 IntelliSense 지원은 없습니다.There is no IntelliSense support for the EXTERNAL NAME clause.

AS 절에서 IntelliSense는 이 항목에 나열된 문과 구문만 지원합니다.In the AS clause, IntelliSense supports only the statements and syntax that are listed in this topic.
USEUSE 모든 구문All syntax. 없음None

지원되는 문의 IntelliSenseIntelliSense in Supported Statements

데이터베이스 엔진Database Engine 쿼리 편집기의 IntelliSense는 지원되는 Transact-SQLTransact-SQL 문 중 하나에서 사용되는 경우 다음 구문 요소를 지원합니다.IntelliSense in the 데이터베이스 엔진Database Engine Query Editor supports the following syntax elements when they are used in one of the supported Transact-SQLTransact-SQL statements:

  • APPLY를 비롯한 모든 조인 유형All join types, including APPLY

  • PIVOT 및 UNPIVOTPIVOT and UNPIVOT

  • 다음 데이터베이스 개체에 대한 참조References to the following database objects:

    • 데이터베이스 및 스키마Databases and schemas

    • 테이블, 뷰, 테이블 반환 함수 및 테이블 식Tables, views, table-valued functions, and table expressions

    • Columns

    • 프로시저 및 프로시저 매개 변수Procedures and procedure parameters

    • 스칼라 함수 및 스칼라 식Scalar functions and scalar expressions

    • 지역 변수Local variables

    • CTE(공통 테이블 식)Common table expressions (CTE)

  • 스크립트나 일괄 처리에 있는 CREATE 또는 ALTER 문에서만 참조되지만 스크립트나 일괄 처리를 아직 실행하지 않았기 때문에 데이터베이스에 없는 데이터베이스 개체.Database objects that are referenced only in CREATE or ALTER statements in the script or batch, but which do not exist in the database because the script or batch has not yet been run. 이러한 개체는 다음과 같습니다.These objects are as follows:

    • 스크립트나 일괄 처리에 있는 CREATE TABLE 또는 CREATE PROCEDURE 문에서 지정한 테이블 및 프로시저Tables and procedures that have been specified in a CREATE TABLE or CREATE PROCEDURE statement in the script or batch.

    • 스크립트나 일괄 처리에 있는 ALTER TABLE 또는 ALTER PROCEDURE 문에서 지정한 테이블 및 프로시저에 대한 변경 내용Changes to tables and procedures that have been specified in an ALTER TABLE or ALTER PROCEDURE statement in the script or batch.

    참고

    CREATE VIEW 문을 실행할 때까지 CREATE VIEW 문의 열에 대해 IntelliSense를 사용할 수 없습니다.IntelliSense is not available for the columns of a CREATE VIEW statement until the CREATE VIEW statement has been executed.

    앞에서 나열된 요소가 다음 Transact-SQLTransact-SQL 문에서 사용되는 경우에는 IntelliSense가 제공되지 않습니다.IntelliSense is not provided for the previously listed elements when they are used in other Transact-SQLTransact-SQL statements. 예를 들어 SELECT 문에서 사용되는 열 이름에 대해서는 IntelliSense가 지원되지만 CREATE FUNCTION 문에서 사용되는 열에 대해서는 IntelliSense가 지원되지 않습니다.For example, there is IntelliSense support for column names that are used in a SELECT statement, but not for columns that are used in the CREATE FUNCTION statement.

Examples

Transact-SQLTransact-SQL 스크립트나 일괄 처리 내에서 데이터베이스 엔진Database Engine 쿼리 편집기의 IntelliSense는 이 항목에 나열된 문과 구문만 지원합니다.Within a Transact-SQLTransact-SQL script or batch, IntelliSense in the 데이터베이스 엔진Database Engine Query Editor supports only the statements and syntax that are listed in this topic. 다음 Transact-SQLTransact-SQL 코드 예제에서는 IntelliSense에서 지원하는 문 및 구문을 보여 줍니다.The following Transact-SQLTransact-SQL code examples show what statements and syntax elements IntelliSense supports. 예를 들어 다음 일괄 처리에서 IntelliSense는 SELECTSELECT 문에 포함되어 있지 않고 자체적으로 코딩된 경우 CREATE FUNCTION 문에 대해 사용할 수 있습니다.For example, in the following batch, IntelliSense is available for the SELECT statement when it is coded by itself, but not when the SELECT is contained in a CREATE FUNCTION statement.

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-SQLTransact-SQL 문 집합에도 적용됩니다.This functionality also applies to the sets of Transact-SQLTransact-SQL statements in the AS clause of a CREATE PROCEDURE or ALTER PROCEDURE statement.

Transact-SQLTransact-SQL 스크립트나 일괄 처리 내에서 IntelliSense는 CREATE 또는 ALTER 문에서 지정했지만 문을 실행하지 않았기 때문에 데이터베이스에 없는 개체를 지원합니다.Within a Transact-SQLTransact-SQL script or batch, IntelliSense supports objects that have been specified in a CREATE or ALTER statement; however, these objects do not exist in the database because the statements have not been executed. 예를 들어 쿼리 편집기에 다음과 같은 코드를 입력할 수 있습니다.For example, you might enter the following code in the Query Editor:

USE MyTestDB;  
GO  
CREATE TABLE MyTable  
    (PrimaryKeyCol   INT PRIMARY KEY,  
    FirstNameCol      NVARCHAR(50),  
   LastNameCol       NVARCHAR(50));  
GO  
SELECT   

SELECT를 입력하면 스크립트를 실행하지 않아 에 아직 없더라도 IntelliSense는 SELECT 목록에 PrimaryKeyCol, FirstNameColMyTable LastNameCol MyTestDB을 사용 가능한 요소로 나열합니다.After you type SELECT, IntelliSense lists PrimaryKeyCol, FirstNameCol, and LastNameCol as possible elements in the select list, even if the script has not been executed and MyTable does not yet exist in MyTestDB.