메모리 내 OLTP에서 지원되지 않는 Transact-SQL 구문Transact-SQL Constructs Not Supported by In-Memory OLTP

이 항목은 다음에 적용됩니다. 예SQL Server(2016부터)예Azure SQL Database아니요Azure SQL Data Warehouse아니요병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO: yesSQL Server (starting with 2016)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

메모리 액세스에 최적화된 테이블, 고유하게 컴파일된 저장 프로시저 및 사용자 정의 함수는 디스크 기반 테이블, 해석된 Transact-SQLTransact-SQL 저장 프로시저 및 사용자 정의 함수에서 지원되는 전체 Transact-SQLTransact-SQL 노출 영역을 지원하지 않습니다.Memory-optimized tables, natively compiled stored procedures, and user-defined functions do not support the full Transact-SQLTransact-SQL surface area that is supported by disk-based tables, interpreted Transact-SQLTransact-SQL stored procedures, and user-defined functions. 지원되지 않는 기능 중 하나를 사용하려고 하면 서버에서 오류가 반환됩니다.When attempting to use one of the unsupported features, the server returns an error.

오류 메시지 텍스트에는 Transact-SQLTransact-SQL 문의 유형(예: 기능, 작업, 옵션)과 기능 또는 Transact-SQLTransact-SQL 키워드의 이름이 언급됩니다.The error message text mentions the type of Transact-SQLTransact-SQL statement (feature, operation, option, for example) and well as the name of the feature or Transact-SQLTransact-SQL keyword. 대부분의 지원되지 않는 기능은 지원되지 않는 기능을 나타내는 오류 메시지 텍스트와 함께 오류 10794를 반환합니다.Most unsupported features will return error 10794, with the error message text indicating the unsupported feature. 다음 표에서는 오류 메시지 텍스트에 나타날 수 있는 Transact-SQLTransact-SQL 기능 및 키워드와 오류를 해결하기 위한 수정 동작을 나열합니다.The following tables list the Transact-SQLTransact-SQL features and keywords that can appear in the error message text, as well as the corrective action to resolve the error.

메모리 액세스에 최적화된 테이블과 고유하게 컴파일된 저장 프로시저에서 지원되는 기능에 대한 자세한 내용은 다음을 참조하십시오.For more information on supported features with memory-optimized tables and natively compiled stored procedures, see:

메모리 내 OLTP를 사용하는 데이터베이스Databases That Use In-Memory OLTP

다음 표에는 메모리 내 OLTP 데이터베이스와 관련된 오류 메시지 텍스트에 표시될 수 있는 지원되지 않는 Transact-SQLTransact-SQL 기능 및 키워드가 나열되어 있습니다.The following table lists the Transact-SQLTransact-SQL features that are not supported, and the keywords that can appear in the message text of an error involving an In-Memory OLTP database. 또한, 다음 표는 오류 해결 방법을 보여줍니다.The table also lists the resolution for the error.

형식Type 이름Name 해결 방법Resolution
옵션Option AUTO_CLOSEAUTO_CLOSE 데이터베이스 옵션 AUTO_CLOSE=ON은 MEMORY_OPTIMIZED_DATA 파일 그룹이 있는 데이터베이스에서 지원되지 않습니다.The database option AUTO_CLOSE=ON is not supported with databases that have a MEMORY_OPTIMIZED_DATA filegroup.
옵션Option ATTACH_REBUILD_LOGATTACH_REBUILD_LOG CREATE 데이터베이스 옵션 ATTACH_REBUILD_LOG는 MEMORY_OPTIMIZED_DATA 파일 그룹이 있는 데이터베이스에서 지원되지 않습니다.The CREATE database option ATTACH_REBUILD_LOG is not supported with databases that have a MEMORY_OPTIMIZED_DATA filegroup.
기능Feature DATABASE SNAPSHOTDATABASE SNAPSHOT 데이터베이스 스냅숏 만들기는 MEMORY_OPTIMIZED_DATA 파일 그룹이 있는 데이터베이스에서 지원되지 않습니다.Creating database snapshots is not supported with databases that have a MEMORY_OPTIMIZED_DATA filegroup.
기능Feature sync_method 'database snapshot' 또는 'database snapshot character'를 사용한 복제Replication using the sync_method 'database snapshot' or 'database snapshot character' sync_method 'database snapshot' 또는 'database snapshot character'를 사용한 복제는 MEMORY_OPTIMIZED_DATA 파일 그룹이 있는 데이터베이스에서 지원되지 않습니다.Replication using the sync_method 'database snapshot' or 'database snapshot character' is not supported with databases that have a MEMORY_OPTIMIZED_DATA filegroup.
기능Feature DBCC CHECKDBDBCC CHECKDB

DBCC CHECKTABLEDBCC CHECKTABLE
DBCC CHECKDB는 데이터베이스에서 메모리 액세스에 최적화된 테이블을 건너뜁니다.DBCC CHECKDB skips the memory-optimized tables in the database.

메모리 액세스에 최적화된 테이블에 대한 DBCC CHECKTABLE은 실패합니다.DBCC CHECKTABLE will fail for memory-optimized tables.

메모리 액세스에 최적화된 테이블Memory-Optimized Tables

다음 표에는 메모리 액세스에 최적화된 테이블과 관련된 오류 메시지 텍스트에 표시될 수 있는 지원되지 않는 Transact-SQLTransact-SQL 기능 및 키워드가 나열되어 있습니다.The following table lists the Transact-SQLTransact-SQL features that are not supported, and the keywords that can appear in the message text of an error involving a memory-optimized table. 또한, 다음 표는 오류 해결 방법을 보여줍니다.The table also lists the resolution for the error.

형식Type 이름Name 해결 방법Resolution
기능Feature ONON 파일 그룹이나 파티션 구성표에는 메모리 액세스에 최적화된 테이블을 배치할 수 없습니다.Memory-optimized tables cannot be placed on a filegroup or partition scheme. CREATE TABLE 문에서 ON 절을 제거합니다.Remove the ON clause from the CREATE TABLE statement.

메모리 액세스에 최적화된 모든 테이블은 메모리 액세스에 최적화된 파일 그룹에 매핑됩니다.All memory optimized tables are mapped to memory-optimized filegroup.
데이터 형식Data type 데이터 형식 이름Data type name 표시된 데이터 형식이 지원되지 않습니다.The indicated data type is not supported. 지원되는 데이터 형식 중 하나로 형식을 바꿉니다.Replace the type with one of the supported data types. 자세한 내용은 메모리 내 OLTP에 지원되는 데이터 형식을 참조하세요.For more information, see Supported Data Types for In-Memory OLTP.
기능Feature 계산 열Computed columns 계산된 열은 메모리 액세스에 최적화된 테이블에서 지원되지 않습니다.Computed columns are not supported for memory-optimized tables. CREATE TABLE 문에서 계산된 열을 제거합니다.Remove the computed columns from the CREATE TABLE statement.

적용 대상: SQL Server 2017SQL Server 2017 CTP 1.1.Applies to: SQL Server 2017SQL Server 2017 CTP 1.1.
SQL Server 2017SQL Server 2017 CTP 1.1부터 계산 열이 메모리 액세스에 최적화된 테이블 및 인덱스에서 지원됩니다.Beginning with SQL Server 2017SQL Server 2017 CTP 1.1, computed columns are supported in memory-optimized tables and indexes.
기능Feature 복제Replication 복제는 메모리 액세스에 최적화된 테이블에서 지원되지 않습니다.Replication is not supported with memory-optimized tables.
기능Feature FILESTREAMFILESTREAM FILESTREAM 저장소는 메모리 액세스에 최적화된 테이블의 열에 지원되지 않습니다.FILESTREAM storage is not supported columns of memory-optimized tables. 열 정의에서 FILESTREAM 키워드를 제거합니다.Remove the FILESTREAM keyword from the column definition.
기능Feature SPARSESPARSE 메모리 액세스에 최적화된 테이블의 열을 SPARSE로 정의할 수 없습니다.Columns of memory-optimized tables cannot be defined as SPARSE. 열 정의에서 SPARSE 키워드를 제거합니다.Remove the SPARSE keyword from the column definition.
기능Feature ROWGUIDCOLROWGUIDCOL ROWGUIDCOL 옵션은 메모리 액세스에 최적화된 테이블의 열에서 지원되지 않습니다.The option ROWGUIDCOL is not supported for columns of memory-optimized tables. 열 정의에서 ROWGUIDCOL 키워드를 제거합니다.Remove the ROWGUIDCOL keyword from the column definition.
기능Feature FOREIGN KEYFOREIGN KEY 메모리 액세스에 최적화된 테이블에의 경우 외래 키 제약 조건은 기본 키를 참조하는 외래 키에서만 지원됩니다.For memory-optimized tables, FOREIGN KEY constraints are only supported for foreign keys referencing primary keys. 외래 키가 고유 제약 조건을 참조하는 경우 테이블 정의에서 제약 조건을 제거합니다.Remove the constraint from the table definition if the foreign key references a unique constraint.
기능Feature 클러스터형 인덱스clustered index 비클러스터형 인덱스를 지정합니다.Specify a nonclustered index. 기본 키 인덱스의 경우 PRIMARY KEY NONCLUSTERED [HASH]를 지정해야 합니다.In the case of a primary key index be sure to specify PRIMARY KEY NONCLUSTERED [HASH].
기능Feature 트랜잭션 내부 DDLDDL inside transactions 사용자 트랜잭션의 컨텍스트에서는 메모리 액세스에 최적화된 테이블과 고유하게 컴파일된 저장 프로시저를 만들거나 삭제할 수 없습니다.Memory-optimized tables and natively compiled stored procedures cannot be created or dropped in the context of a user transaction. 트랜잭션을 시작하지 말고 CREATE 또는 DROP 문을 실행하기 전에 세션 설정 IMPLICIT_다TRANSACTIONS가 OFF인지 확인합니다.Do not start a transaction and ensure the session setting IMPLICIT_TRANSACTIONS is OFF before executing the CREATE or DROP statement.
기능Feature DDL 트리거DDL triggers 해당 DLL 작업에 대한 서버 또는 데이터베이스 트리거가 있는 경우 메모리 액세스에 최적화된 테이블과 고유하게 컴파일된 저장 프로시저를 만들거나 삭제할 수 없습니다.Memory-optimized tables and natively compiled stored procedures cannot be created or dropped if there is a server or database trigger for that DDL operation. CREATE/DROP TABLE 및 CREATE/DROP PROCEDURE에 대한 서버 및 데이터베이스 트리거를 제거합니다.Remove the server and database triggers on CREATE/DROP TABLE and CREATE/DROP PROCEDURE.
기능Feature EVENT NOTIFICATIONEVENT NOTIFICATION 해당 DLL 작업에 대한 서버 또는 데이터베이스 이벤트 알림이 있는 경우 메모리 액세스에 최적화된 테이블 및 고유하게 컴파일된 저장 프로시저를 만들거나 삭제할 수 없습니다.Memory-optimized tables and natively compiled stored procedures cannot be created or dropped if there is a server or database event notification for that DDL operation. CREATE TABLE 또는 DROP TABLE과 CREATE PROCEDURE 또는 DROP PROCEDURE에 대한 서버 및 데이터베이스 이벤트 알림을 제거합니다.Remove the server and database event notifications on CREATE TABLE or DROP TABLE and CREATE PROCEDURE or DROP PROCEDURE.
기능Feature FileTableFileTable 메모리 액세스에 최적화된 테이블을 파일 테이블로 만들 수 없습니다.Memory-optimized tables cannot be created as file tables. AS FileTable 문에서 CREATE TABLE 인수를 제거합니다.Remove the argument AS FileTable from the CREATE TABLE statement
연산Operation 기본 키 열의 업데이트Update of primary key columns 메모리 액세스에 최적화된 테이블의 기본 키 열과 테이블 형식을 업데이트할 수 없습니다.Primary key columns in memory-optimized tables and table types cannot be updated. 기본 키를 업데이트해야 하는 경우 기존 열을 삭제하고 업데이트된 기본 키가 있는 새 열을 삽입합니다.If the primary key needs to be updated, delete the old row and insert the new row with the updated primary key.
연산Operation CREATE INDEXCREATE INDEX CREATE TABLE 문 또는 ALTER TABLE 문을 사용하여 메모리 액세스에 최적화된 테이블의 인덱스를 인라인으로 지정해야 합니다.Indexes on memory-optimized tables must be specified inline with the CREATE TABLE statement, or with the ALTER TABLE statement.
연산Operation CREATE FULLTEXT INDEXCREATE FULLTEXT INDEX 전체 텍스트 인덱스는 메모리 액세스에 최적화된 테이블에서 지원되지 않습니다.Fulltext indexes are not supported for memory-optimized tables.
연산Operation 스키마 변경schema change 메모리 액세스에 최적화된 테이블과 고유하게 컴파일된 저장 프로시저는 sp_rename과 같은 스키마 변경을 지원하지 않습니다.Memory-optimized tables and natively compiled stored procedures do not support schema changes, for example, sp_rename.

특정 스키마를 변경하려는 경우 오류 12320이 발생합니다.Attempting to make certain schema changes will generate error 12320. 이름을 바꾸는 등 스키마 버전을 변경해야 하는 작업은 메모리에 액세스에 최적화된 테이블에서 지원되지 않습니다.Operations that require a change to the schema version, for example renaming, are not supported with memory-optimized tables.

ALTER TABLE 및 ALTER PROCEDURE를 사용하면 특정 스키마를 변경할 수 있습니다.Certain schema changes using ALTER TABLE and ALTER PROCEDURE are allowed.

적용 대상: SQL Server 2016SQL Server 2016을 참조하세요.Applies to: SQL Server 2016SQL Server 2016.
SQL Server 2016SQL Server 2016부터 sp_rename이 지원됩니다.Beginning with SQL Server 2016SQL Server 2016, sp_rename is supported.
연산Operation TRUNCATE TABLETRUNCATE TABLE TRUNCATE 작업은 메모리 액세스에 최적화된 테이블에서 지원되지 않습니다.The TRUNCATE operation is not supported for memory-optimized tables. 테이블에서 모든 행을 제거하려면 DELETE FROMtable 을 사용하여 모든 행을 삭제하거나 테이블을 삭제하고 다시 만듭니다.To remove all rows from a table, delete all rows using DELETE FROMtable or drop and recreate the table.
연산Operation ALTER AUTHORIZATIONALTER AUTHORIZATION 메모리 액세스에 최적화된 테이블이나 고유하게 컴파일된 저장 프로시저의 소유자 변경은 지원되지 않습니다.Changing the owner of an existing memory-optimized table or natively compiled stored procedure is not supported. 테이블이나 프로시저를 삭제하고 다시 만들어 소유권을 변경합니다.Drop and recreate the table or procedure to change ownership.
연산Operation ALTER SCHEMAALTER SCHEMA 스키마 간에 보안 개체를 이동합니다.Transferring a securable between schemas.
연산Operation DBCC CHECKTABLEDBCC CHECKTABLE DBCC CHECKTABLE은 메모리 액세스에 최적화된 테이블에서 지원되지 않습니다.DBCC CHECKTABLE is not supported with memory-optimized tables.
기능Feature ANSI_PADDING OFFANSI_PADDING OFF 메모리 액세스에 최적화된 테이블이나 고유하게 컴파일된 저장 프로시저를 만들 때는 세션 옵션 ANSI_PADDING 이 ON이어야 합니다.The session option ANSI_PADDING must be ON when creating memory-optimized tables or natively compiled stored procedures. CREATE 문을 실행하기 전에 SET ANSI_PADDING ON 을 실행합니다.Execute SET ANSI_PADDING ON before running the CREATE statement.
옵션Option DATA_COMPRESSIONDATA_COMPRESSION 압축은 메모리 액세스에 최적화된 테이블에서 지원되지 않습니다.Data compression is not supported for memory-optimized tables. 테이블 정의에서 옵션을 제거합니다.Remove the option from the table definition.
기능Feature DTCDTC 분산 트랜잭션에서는 메모리 액세스에 최적화된 테이블과 고유하게 컴파일된 저장 프로시저에 액세스할 수 없습니다.Memory-optimized tables and natively compiled stored procedures cannot be accessed from distributed transactions. SQL 트랜잭션을 대산 사용합니다.Use SQL transactions instead.
연산Operation 메모리 액세스에 최적화된 테이블을 대상으로 사용하는 MERGEMemory-optimized tables as target of MERGE 메모리 액세스에 최적화된 테이블은 MERGE 작업의 대상일 수 없습니다.Memory-optimized tables cannot be the target of a MERGE operation. INSERT, UPDATE또는 DELETE 문을 대신 사용합니다.Use INSERT, UPDATE, or DELETE statements instead.

메모리 액세스에 최적화된 테이블의 인덱스Indexes on Memory-Optimized Tables

다음 표에서는 메모리 액세스에 최적화된 테이블의 인덱스와 관련된 오류의 메시지 텍스트에 나타날 수 있는 Transact-SQLTransact-SQL 기능 및 키워드와 오류를 해결하기 위한 수정 동작을 나열합니다.The following table lists the Transact-SQLTransact-SQL features and keywords that can appear in the message text of an error involving an index on a memory-optimized table, as well as the corrective action to resolve the error.

형식Type 이름Name 해결 방법Resolution
기능Feature 필터링된 인덱스Filtered index 필터링된 인덱스는 메모리 액세스에 최적화된 테이블에서 지원되지 않습니다.Filtered indexes are not supported with memory-optimized tables. 인덱스 사양에서 WHERE 절을 생략합니다.Omit the WHERE clause from the index specification.
기능Feature 포괄 열Included columns 메모리 액세스에 최적화된 테이블의 포괄 열을 지정할 필요가 없습니다.Specifying included columns is not necessary for memory-optimized tables. 메모리 액세스에 최적화된 테이블의 모든 열은 모든 메모리 액세스에 최적화된 인덱스에 암시적으로 포함됩니다.All columns of the memory-optimized table are implicitly included in every memory-optimized index.
연산Operation DROP INDEXDROP INDEX 메모리 액세스에 최적화된 테이블의 인덱스 삭제는 지원되지 않습니다.Dropping indexes on memory-optimized tables is not supported. ALTER TABLE을 사용하여 인덱스를 삭제할 수 있습니다.You can delete indexes using ALTER TABLE.

자세한 내용은 메모리 액세스에 최적화된 테이블 변경을 참조하세요.For more information, see Altering Memory-Optimized Tables.
인덱스 옵션Index option 인덱스 옵션Index option 해시 인덱스에 대한 BUCKET_COUNT 인덱스 옵션만 지원됩니다.Only one index option is supported – BUCKET_COUNT for HASH indexes.

비클러스터형 해시 인덱스Nonclustered Hash Indexes

다음 표에서는 비클러스터형 해시 인덱스와 관련된 오류의 메시지 텍스트에 나타날 수 있는 Transact-SQLTransact-SQL 기능 및 키워드와 오류를 해결하기 위한 수정 동작을 나열합니다.The following table lists the Transact-SQLTransact-SQL features and keywords that can appear in the message text of an error involving a nonclustered hash index, as well as the corrective action to resolve the error.

형식Type 이름Name 해결 방법Resolution
옵션Option ASC/DESCASC/DESC 비클러스터형 해시 인덱스가 정렬되지 않습니다.Nonclustered hash indexes are not ordered. 인덱스 키 사양에서 ASCDESC 키워드를 제거합니다.Remove the keywords ASC and DESC from the index key specification.

고유하게 컴파일된 저장 프로시저 및 사용자 정의 함수Natively Compiled Stored Procedures and User-Defined Functions

다음 표에서는 고유하게 컴파일된 저장 프로시저 및 사용자 정의 함수와 관련된 오류의 메시지 텍스트에 나타날 수 있는 Transact-SQLTransact-SQL 기능 및 키워드와 오류를 해결하기 위한 수정 동작을 나열합니다.The following table lists the Transact-SQLTransact-SQL features and keywords that can appear in the message text of an error involving natively compiled stored procedures and user-defined functions, as well as the corrective action to resolve the error.

형식Type 기능Feature 해결 방법Resolution
기능Feature 인라인 테이블 변수Inline table variables 변수 선언을 사용하여 테이블 형식을 인라인으로 선언할 수 없습니다.Table types cannot be declared inline with variable declarations. CREATE TYPE 문을 사용하여 테이블 형식을 명시적으로 선언해야 합니다.Table types must be declared explicitly using a CREATE TYPE statement.
기능Feature 커서Cursors 커서는 고유하게 컴파일된 저장 프로시저 위나 안에서 지원되지 않습니다.Cursors are not supported on or in natively compiled stored procedures.

클라이언트에서 프로시저를 실행할 때는 커서 API 대신 RPC를 사용합니다.When executing the procedure from the client, use RPC rather than the cursor API. ODBC가 있는 경우 Transact-SQLTransact-SQL 인수를 제거합니다. EXECUTE를 사용하지 말고 그 대신 프로시저 이름을 직접 지정합니다.With ODBC, avoid the Transact-SQLTransact-SQL statement EXECUTE, instead specify the name of the procedure directly.

Transact-SQLTransact-SQL 일괄 처리 또는 다른 저장 프로시저에서 프로시저를 실행할 때는 고유하게 컴파일된 저장 프로시저와 함께 커서를 사용하지 마십시오.When executing the procedure from a Transact-SQLTransact-SQL batch or another stored procedure, avoid using a cursor with the natively compiled stored procedure.

고유하게 컴파일된 저장 프로시저를 만들 때는 커서를 사용하는 대신 집합 기반 논리 또는 WHILE 루프를 사용합니다.When creating a natively compiled stored procedure, rather than using a cursor, use set-based logic or a WHILE loop.
기능Feature 비 상수 매개 변수 기본값Non-constant parameter defaults 고유하게 컴파일된 저장 프로시저에서 매개 변수와 함께 기본값을 사용할 때는 값이 상수여야 합니다.When using default values with parameters on natively compiled stored procedures, the values must be constants. 매개 변수 선언에서 와일드카드를 제거 합니다.Remove any wildcards from the parameter declarations.
기능Feature EXTERNALEXTERNAL CLR 저장 프로시저는 고유하게 컴파일될 수 없습니다.CLR stored procedures cannot be natively compiled. CREATE PROCEDURE 문에서 AS EXTERNAL 절이나 NATIVE_COMPILATION 옵션을 제거합니다.Either remove the AS EXTERNAL clause or the NATIVE_COMPILATION option from the CREATE PROCEDURE statement.
기능Feature 번호가 매겨진 저장 프로시저Numbered stored procedures 고유하게 컴파일된 저장 프로시저에 번호를 매길 수 없습니다.Natively compiled stored procedures cannot be numbered. CREATE PROCEDURE문에서 ; number 를 제거합니다.Remove the ;number from the CREATE PROCEDURE statement.
기능Feature 다중 행 INSERT...multi-row INSERT … VALUES 문VALUES statements 고유하게 컴파일된 저장 프로시저에서 동일한 INSERT 문을 사용하여 여러 행을 삽입할 수 없습니다.Cannot insert multiple rows using the same INSERT statement in a natively compiled stored procedure. 각 행에 대해 INSERT 문을 만듭니다.Create INSERT statements for each row.
기능Feature CTE(공통 테이블 식)Common Table Expressions (CTEs) CTE(공통 테이블 식)은 고유하게 컴파일된 저장 프로시저에서 지원되지 않습니다.Common table expressions (CTE) are not supported in natively compiled stored procedures. 쿼리를 다시 작성합니다.Rewrite the query.
기능Feature COMPUTECOMPUTE COMPUTE 절은 지원되지 않습니다.The COMPUTE clause is not supported. 쿼리에서 이 절을 제거합니다.Remove it from the query.
기능Feature SELECT INTOSELECT INTO INTO 절은 SELECT 문에 지원되지 않습니다.The INTO clause is not supported with the SELECT statement. p INTOTableSELECT로 쿼리를 다시 작성합니다.Rewrite the query as p INTOTableSELECT.
기능Feature 불완전한 삽입 열 목록incomplete insert column list 일반적으로, INSERT 문에서는 테이블에 잇는 모든 열에 대해 값을 지정해야 합니다.In general, in INSERT statements values must be specified for all columns in the table.

그러나 메모리 최적화된 테이블에서는 기본 제약 조건 및 IDENTITY(1,1) 열이 지원됩니다.However, we do support DEFAULT constraints and IDENTITY(1,1) columns on memory optimized tables. 이러한 열이 될 수 있고 IDENTITY 열이 반드시 있어야 하는 경우 INSERT 열 목록에서 생략합니다.These columns can be, and in the case of IDENTITY columns must be, omitted from the INSERT column list.
기능Feature 함수Function 일부 기본 함수는 고유하게 컴파일된 저장 프로시저에서 지원되지 않습니다.Some built-in functions are not supported in natively compiled stored procedures. 저장 프로시저에서 거부된 함수를 제거합니다.Remove the rejected function from the stored procedure. 지원되는 기본 제공 함수에 대한 자세한 내용은For more information about supported built-in functions, see
고유하게 컴파일된 T-SQL 모듈에 대해 지원되는 기능또는Supported Features for Natively Compiled T-SQL Modules, or
고유하게 컴파일된 저장 프로시저를 참조하세요.Natively Compiled Stored Procedures.
기능Feature CASECASE CASE 문은 고유하게 컴파일된 저장 프로시저 내부의 쿼리에서 지원되지 않습니다.The CASE statement is not supported in queries inside natively compiled stored procedures. 각 사례에 대해 쿼리를 만듭니다.Create queries for each case. 자세한 내용은 고유하게 컴파일된 저장 프로시저에서 CASE 식 구현을 참조하세요.For more information, see Implementing a CASE Expression in a Natively Compiled Stored Procedure.
기능Feature INSERT EXECUTEINSERT EXECUTE 참조를 제거합니다.Remove the reference.
기능Feature CREATE 문을 실행하기 전에EXECUTE 고유하게 컴파일된 저장 프로시저 및 사용자 정의 함수를 실행하기 위해서만 지원됩니다.Supported only to execute natively compiled stored procedures and user-defined functions.
기능Feature 사용자 정의 집계user-defined aggregates 사용자 정의 집계 함수는 고유하게 컴파일된 저장 프로시저에서 사용할 수 없습니다.User-defined aggregate functions cannot be used in natively compiled stored procedures. 프로시저에서 함수에 대한 참조를 제거합니다.Remove the reference to the function from the procedure.
기능Feature 찾아보기 모드 메타데이터browse mode metadata 고유하게 컴파일된 저장 프로시저는 브라우저 모드 메타데이터를 지원하지 않습니다.Natively compiled stored procedures do not support browse mode metadata. 세션 옵션 NO_BROWSETABLE 이 OFF로 설정되어 있는지 확인합니다.Make sure the session option NO_BROWSETABLE is set to OFF.
기능Feature FROM 절의 DELETEDELETE with FROM clause FROM 절은 고유하게 컴파일된 저장 프로시저에서 테이블 원본을 사용하는 DELETE 문에 대해 지원되지 않습니다.The FROM clause is not supported for DELETE statements with a table source in natively compiled stored procedures.

DELETE 절이 있는 FROM 는 삭제할 테이블을 나타내는 데 사용되는 경우 지원됩니다.DELETE with the FROM clause is supported when it is used to indicate the table to delete from.
기능Feature FROM 절의 UPDATEUPDATE with FROM clause FROM 절은 고유하게 컴파일된 저장 프로시저의 UPDATE 문에서 지원되지 않습니다.The FROM clause is not supported for UPDATE statements in natively compiled stored procedures.
기능Feature 임시 프로시저temporary procedures 임시 저장 프로시저를 고유하게 컴파일할 수 없습니다.Temporary stored procedures cannot be natively compiled. 영구 고유하게 컴파일된 저장 프로시저 또는 임시 해석된 Transact-SQLTransact-SQL 저장 프로시저를 만듭니다.Either create a permanent natively compiled stored procedure or a temporary interpreted Transact-SQLTransact-SQL stored procedure.
격리 수준Isolation level READ UNCOMMITTEDREAD UNCOMMITTED 격리 수준 READ UNCOMMITTED는 고유하게 컴파일된 저장 프로시저에서 지원되지 않습니다.The isolation level READ UNCOMMITTED is not supported for natively compiled stored procedures. SNAPSHOT과 같이 지원되는 격리 수준을 사용합니다.Use a supported isolation level, such as SNAPSHOT.
격리 수준Isolation level READ COMMITTEDREAD COMMITTED 격리 수준 READ COMMITTED는 고유하게 컴파일된 저장 프로시저에서 지원되지 않습니다.The isolation level READ COMMITTED is not supported for natively compiled stored procedures. SNAPSHOT과 같이 지원되는 격리 수준을 사용합니다.Use a supported isolation level, such as SNAPSHOT.
기능Feature 임시 테이블temporary tables tempdb의 테이블은 고유하게 컴파일된 저장 프로시저에서 사용할 수 없습니다.Tables in tempdb cannot be used in natively compiled stored procedures. 그 대신 테이블 변수 또는 DURABILITY=SCHEMA_ONLY인 메모리 액세스에 최적화된 테이블을 사용합니다.Instead, use a table variable or a memory-optimized table with DURABILITY=SCHEMA_ONLY.
기능Feature DTCDTC 분산 트랜잭션에서는 메모리 액세스에 최적화된 테이블과 고유하게 컴파일된 저장 프로시저에 액세스할 수 없습니다.Memory-optimized tables and natively compiled stored procedures cannot be accessed from distributed transactions. SQL 트랜잭션을 대산 사용합니다.Use SQL transactions instead.
기능Feature EXECUTE WITH RECOMPILEEXECUTE WITH RECOMPILE WITH RECOMPILE 옵션은 고유하게 컴파일된 저장 프로시저에서 지원되지 않습니다.The option WITH RECOMPILE is not supported for natively compiled stored procedures.
기능Feature 관리자 전용 연결에서 실행.Execution from the dedicated administrator connection. DAC(관리자 전용 연결)에서 고유하게 컴파일된 저장 프로시저를 실행할 수 없습니다.Natively compiled stored procedures cannot be executed from the dedicated admin connection (DAC). 일반 연결을 대신 사용합니다.Use a regular connection instead.
연산Operation 저장점(savepoint)savepoint 활성 저장점이 있는 트랜잭션에서 고유하게 컴파일된 저장 프로시저를 호출할 수 없습니다.Natively compiled stored procedures cannot be invoked from transactions that have an active savepoint. 트랜잭션에서 저장점을 제거합니다.Remove the savepoint from the transaction.
연산Operation ALTER AUTHORIZATIONALTER AUTHORIZATION 메모리 액세스에 최적화된 테이블이나 고유하게 컴파일된 저장 프로시저의 소유자 변경은 지원되지 않습니다.Changing the owner of an existing memory-optimized table or natively compiled stored procedure is not supported. 테이블이나 프로시저를 삭제하고 다시 만들어 소유권을 변경합니다.Drop and recreate the table or procedure to change ownership.
연산자Operator OPENROWSETOPENROWSET 이 연산자는 지원되지 않습니다.This operator is not supported. 고유하게 컴파일된 저장 프로시저에서 OPENROWSET 를 제거합니다.Remove OPENROWSET from the natively compiled stored procedure.
연산자Operator OPENQUERYOPENQUERY 이 연산자는 지원되지 않습니다.This operator is not supported. 고유하게 컴파일된 저장 프로시저에서 OPENQUERY 를 제거합니다.Remove OPENQUERY from the natively compiled stored procedure.
연산자Operator OPENDATASOURCEOPENDATASOURCE 이 연산자는 지원되지 않습니다.This operator is not supported. 고유하게 컴파일된 저장 프로시저에서 OPENDATASOURCE 를 제거합니다.Remove OPENDATASOURCE from the natively compiled stored procedure.
연산자Operator OPENXMLOPENXML 이 연산자는 지원되지 않습니다.This operator is not supported. 고유하게 컴파일된 저장 프로시저에서 OPENXML 를 제거합니다.Remove OPENXML from the natively compiled stored procedure.
연산자Operator CONTAINSTABLECONTAINSTABLE 이 연산자는 지원되지 않습니다.This operator is not supported. 고유하게 컴파일된 저장 프로시저에서 CONTAINSTABLE 를 제거합니다.Remove CONTAINSTABLE from the natively compiled stored procedure.
연산자Operator FREETEXTTABLEFREETEXTTABLE 이 연산자는 지원되지 않습니다.This operator is not supported. 고유하게 컴파일된 저장 프로시저에서 FREETEXTTABLE 를 제거합니다.Remove FREETEXTTABLE from the natively compiled stored procedure.
기능Feature 테이블 반환 함수table-valued functions 테이블 반환 함수는 고유하게 컴파일된 저장 프로시저에서 참조할 수 없습니다.Table-valued functions cannot be referenced from natively compiled stored procedures. 이러한 제한에 대한 가능한 해결 방법 중 하나는 테이블 반환 함수의 논리를 프로시저 본문에 추가하는 것입니다.One possible workaround for this restriction is to add the logic in the table-valued functions to the procedure body.
연산자Operator CHANGETABLECHANGETABLE 이 연산자는 지원되지 않습니다.This operator is not supported. 고유하게 컴파일된 저장 프로시저에서 CHANGETABLE 를 제거합니다.Remove CHANGETABLE from the natively compiled stored procedure.
연산자Operator GOTOGOTO 이 연산자는 지원되지 않습니다.This operator is not supported. WHILE과 같은 다른 프로시저 구문을 사용합니다.Use other procedural constructs such as WHILE.
연산자Operator OFFSETOFFSET 이 연산자는 지원되지 않습니다.This operator is not supported. 고유하게 컴파일된 저장 프로시저에서 OFFSET 를 제거합니다.Remove OFFSET from the natively compiled stored procedure.
연산자Operator INTERSECTINTERSECT 이 연산자는 지원되지 않습니다.This operator is not supported. 고유하게 컴파일된 저장 프로시저에서 INTERSECT 를 제거합니다.Remove INTERSECT from the natively compiled stored procedure. 일부 경우에는 INNER JOIN을 사용하여 동일한 결과를 얻을 수 있습니다.In some cases an INNER JOIN can be used to obtain the same result.
연산자Operator EXCEPTEXCEPT 이 연산자는 지원되지 않습니다.This operator is not supported. 고유하게 컴파일된 저장 프로시저에서 EXCEPT 를 제거합니다.Remove EXCEPT from the natively compiled stored procedure.
연산자Operator APPLYAPPLY 이 연산자는 지원되지 않습니다.This operator is not supported. 고유하게 컴파일된 저장 프로시저에서 APPLY 를 제거합니다.Remove APPLY from the natively compiled stored procedure.

적용 대상: SQL Server 2017SQL Server 2017 CTP 1.1.Applies to: SQL Server 2017SQL Server 2017 CTP 1.1.
SQL Server 2017SQL Server 2017 CTP 1.1부터 APPLY 연산자는 고유하게 컴파일된 모듈에서 지원됩니다.Beginning with SQL Server 2017SQL Server 2017 CTP 1.1, the APPLY operator is supported in natively compiled modules.
연산자Operator PIVOTPIVOT 이 연산자는 지원되지 않습니다.This operator is not supported. 고유하게 컴파일된 저장 프로시저에서 PIVOT 를 제거합니다.Remove PIVOT from the natively compiled stored procedure.
연산자Operator UNPIVOTUNPIVOT 이 연산자는 지원되지 않습니다.This operator is not supported. 고유하게 컴파일된 저장 프로시저에서 UNPIVOT 를 제거합니다.Remove UNPIVOT from the natively compiled stored procedure.
연산자Operator CONTAINSCONTAINS 이 연산자는 지원되지 않습니다.This operator is not supported. 고유하게 컴파일된 저장 프로시저에서 CONTAINS 를 제거합니다.Remove CONTAINS from the natively compiled stored procedure.
연산자Operator FREETEXTFREETEXT 이 연산자는 지원되지 않습니다.This operator is not supported. 고유하게 컴파일된 저장 프로시저에서 FREETEXT 를 제거합니다.Remove FREETEXT from the natively compiled stored procedure.
연산자Operator TSEQUALTSEQUAL 이 연산자는 지원되지 않습니다.This operator is not supported. 고유하게 컴파일된 저장 프로시저에서 TSEQUAL 를 제거합니다.Remove TSEQUAL from the natively compiled stored procedure.
연산자Operator LIKELIKE 이 연산자는 지원되지 않습니다.This operator is not supported. 고유하게 컴파일된 저장 프로시저에서 LIKE 를 제거합니다.Remove LIKE from the natively compiled stored procedure.
연산자Operator NEXT VALUE FORNEXT VALUE FOR 고유하게 컴파일된 저장 프로시저 내부에서 시퀀스를 참조할 수 없습니다.Sequences cannot be referenced inside natively compiled stored procedures. 해석된 Transact-SQLTransact-SQL을 사용하여 값을 얻은 다음 고유하게 컴파일된 저장 프로시저로 값을 전달합니다.Obtain the value using interpreted Transact-SQLTransact-SQL, and then pass it into the natively compiled stored procedure. 자세한 내용은 메모리 액세스에 최적화된 테이블에서 IDENTITY 구현을 참조하세요.For more information, see Implementing IDENTITY in a Memory-Optimized Table.
SET 옵션Set option 옵션option 고유하게 컴파일된 저장 프로시저 내부에서 SET 옵션을 변경할 수 없습니다.SET options cannot be changed inside natively compiled stored procedures. BEGIN ATOMIC 문을 사용하여 특정 옵션을 설정할 수 있습니다.Certain options can be set with the BEGIN ATOMIC statement. 자세한 내용은 Natively Compiled Stored Procedures에서 ATOMIC 블록에 대한 섹션을 참조하십시오.For more information, see the section on atonic blocks in Natively Compiled Stored Procedures.
피연산자Operand TABLESAMPLETABLESAMPLE 이 연산자는 지원되지 않습니다.This operator is not supported. 고유하게 컴파일된 저장 프로시저에서 TABLESAMPLE 를 제거합니다.Remove TABLESAMPLE from the natively compiled stored procedure.
옵션Option RECOMPILERECOMPILE 고유하게 컴파일된 저장 프로시저는 만들 때 컴파일됩니다.Natively compiled stored procedures are compiled at create time. 프로시저 정의에서 RECOMPILE 을 제거합니다.Remove RECOMPILE from the procedure definition.

고유하게 컴파일된 저장 프로시저에서 sp_recompile을 실행할 수 있고 이를 통해 다음 실행에서 다시 컴파일됩니다.You can execute sp_recompile on a natively compiled stored procedure, which causes it to recompile on the next execution.
옵션Option ENCRYPTIONENCRYPTION 이 옵션은 지원되지 않습니다.This option is not supported. 프로시저 정의에서 ENCRYPTION 을 제거합니다.Remove ENCRYPTION from the procedure definition.
옵션Option FOR REPLICATIONFOR REPLICATION 복제를 위해 고유하게 컴파일된 저장 프로시저를 만들 수 없습니다.Natively compiled stored procedures cannot be created for replication. 프로시저 정의에서 FOR REPLICATION 을 제거합니다.Removed FOR REPLICATION from the procedure definition.
옵션Option FOR XMLFOR XML 이 옵션은 지원되지 않습니다.This option is not supported. 고유하게 컴파일된 저장 프로시저에서 FOR XML 를 제거합니다.Remove FOR XML from the natively compiled stored procedure.
옵션Option FOR BROWSEFOR BROWSE 이 옵션은 지원되지 않습니다.This option is not supported. 고유하게 컴파일된 저장 프로시저에서 FOR BROWSE 를 제거합니다.Remove FOR BROWSE from the natively compiled stored procedure.
조인 힌트Join hint HASH, MERGEHASH, MERGE 고유하게 컴파일된 저장 프로시저는 중첩 루프 조인만 지원합니다.Natively compiled stored procedures only support nested-loops joins. 해시 및 병합 조인은 지원되지 않습니다.Hash and merge joins are not supported. 조인 힌트를 제거합니다.Remove the join hint.
쿼리 힌트Query hint 쿼리 힌트Query hint 이 쿼리 힌트는 고유하게 컴파일된 저장 프로시저 내부에 없습니다.This query hint is not inside natively compiled stored procedures. 지원되는 쿼리 힌트는 쿼리 힌트(Transact-SQL)를 참조하세요.For supported query hints see Query Hints (Transact-SQL).
옵션Option PERCENTPERCENT 이 옵션은 TOP 절에 지원되지 않습니다.This option is not supported with TOP clauses. 고유하게 컴파일된 저장 프로시저의 쿼리에서 PERCENT 를 제거합니다.Remove PERCENT from the query in the natively compiled stored procedure.
옵션Option WITH TIESWITH TIES 이 옵션은 TOP 절에 지원되지 않습니다.This option is not supported with TOP clauses. 고유하게 컴파일된 저장 프로시저의 쿼리에서 WITH TIES 를 제거합니다.Remove WITH TIES from the query in the natively compiled stored procedure.
집계 함수Aggregate function Aggregate 함수Aggregate function 이 절은 지원되지 않습니다.This clause is not supported. 고유하게 컴파일된 저장 프로시저의 집계 함수에 대한 자세한 내용은 Natively Compiled Stored Procedures를 참조하십시오.For more information about aggregate functions in natively compiled stored procedures, see Natively Compiled Stored Procedures.
순위 함수Ranking function 순위 함수Ranking function 순위 함수는 고유하게 컴파일된 저장 프로시저에서 지원되지 않습니다.Ranking functions are not supported in natively compiled stored procedures. 프로시저 정의에서 해당 함수를 제거합니다.Remove them from the procedure definition.
함수Function 함수Function 이 함수는 지원되지 않습니다.This function is not supported. 고유하게 컴파일된 저장 프로시저에서 해당 함수를 제거합니다.Remove it from the natively compiled stored procedure.
인수를 제거합니다.Statement Statement 이 문은 지원되지 않습니다.This statement is not supported. 고유하게 컴파일된 저장 프로시저에서 해당 함수를 제거합니다.Remove it from the natively compiled stored procedure.
기능Feature 문자 및 이진 문자열과 함께 사용되는 MIN 및 MAXMIN and MAX used with binary and character strings 집계 함수 MINMAX 는 고유하게 컴파일된 저장 프로시저 내부의 문자와 이진 문자열에 사용할 수 없습니다.The aggregate functions MIN and MAX cannot be used for character and binary string values inside natively compiled stored procedures.
기능Feature GROUP BY ALLGROUP BY ALL ALL은 고유하게 컴파일된 저장 프로시저에서 GROUP BY 절에 사용할 수 없습니다.ALL cannot be used with GROUP BY clauses in natively compiled stored procedures. GROUP BY 절에서 ALL을 제거합니다.Remove ALL from the GROUP BY clause.
기능Feature GROUP BY ()GROUP BY () 빈 목록으로 그룹화는 지원되지 않습니다.Grouping by an empty list is not supported. GROUP BY 절을 제거하거나 그룹화 목록에 열을 포함합니다.Either remove the GROUP BY clause, or include columns in the grouping list.
기능Feature ROLLUPROLLUP ROLLUP 은 고유하게 컴파일된 저장 프로시저에서 GROUP BY 절에 사용할 수 없습니다.ROLLUP cannot be used with GROUP BY clauses in natively compiled stored procedures. 프로시저 정의에서 ROLLUP 을 제거합니다.Remove ROLLUP from the procedure definition.
기능Feature CUBECUBE CUBE 은 고유하게 컴파일된 저장 프로시저에서 GROUP BY 절에 사용할 수 없습니다.CUBE cannot be used with GROUP BY clauses in natively compiled stored procedures. 프로시저 정의에서 CUBE 을 제거합니다.Remove CUBE from the procedure definition.
기능Feature GROUPING SETSGROUPING SETS GROUPING SETS 은 고유하게 컴파일된 저장 프로시저에서 GROUP BY 절에 사용할 수 없습니다.GROUPING SETS cannot be used with GROUP BY clauses in natively compiled stored procedures. 프로시저 정의에서 GROUPING SETS 을 제거합니다.Remove GROUPING SETS from the procedure definition.
기능Feature BEGIN TRANSACTION, COMMIT TRANSACTION 및 ROLLBACK TRANSACTIONBEGIN TRANSACTION, COMMIT TRANSACTION, and ROLLBACK TRANSACTION ATOMIC 블록을 사용하여 트랜잭션과 오류 처리를 제어합니다.Use ATOMIC blocks to control transactions and error handling. 자세한 내용은 Atomic Blocks을(를) 참조하십시오.For more information, see Atomic Blocks.
기능Feature 인라인 테이블 변수 선언Inline table variable declarations. 테이블 변수는 명시적으로 정의된 메모리 액세스에 최적화된 테이블 형식을 참조해야 합니다.Table variables must reference explicitly defined memory-optimized table types. 메모리 액세스에 최적화된 테이블 형식을 만들고 이 형식을 인라인으로 지정하는 대신 변수 선언에 이 형식을 사용합니다.You should create a memory-optimized table type and use that type for the variable declaration, rather than specifying the type inline.
기능Feature 디스크 기반 테이블Disk-based tables 디스크 기반 테이블은 고유하게 컴파일된 저장 프로시저에서 액세스할 수 없습니다.Disk-based tables cannot be accessed from natively compiled stored procedures. 고유하게 컴파일된 저장 프로시저에서 디스크 기반 테이블에 대한 참조를 제거합니다.Remove references to disk-based tables from the natively-compiled stored procedures. 또는 디스크 기반 테이블을 메모리 액세스에 최적화된 테이블로 마이그레이션합니다.Or, migrate the disk-based table(s) to memory optimized.
기능Feature Views 뷰는 고유하게 컴파일된 저장 프로시저에서 액세스할 수 없습니다.Views cannot be accessed from natively compiled stored procedures. 뷰 대신 기본 테이블을 참조합니다.Instead of views, reference the underlying base tables.
기능Feature 테이블 반환 함수Table valued functions 테이블 반환 함수는 고유하게 컴파일된 저장 프로시저에서 액세스할 수 없습니다.Table-valued functions cannot be accessed from natively compiled stored procedures. 고유하게 컴파일된 저장 프로시저에서 테이블 반환 함수에 대한 참조를 제거합니다.Remove references to table-valued functions from the natively compiled stored procedure.
옵션Option PRINTPRINT 참조 제거Remove reference
기능Feature DDLDDL DDL은 지원되지 않습니다.No DDL is supported.
옵션Option STATISTICS XMLSTATISTICS XML 지원되지 않습니다.Not supported. STATISTICS XML을 사용하여 쿼리를 실행한 경우 XML 콘텐츠는 고유하게 컴파일된 저장 프로시저에 대한 부분 없이 반환됩니다.When you run a query, with STATISTICS XML enabled, the XML content is returned without the part for the natively compiled stored procedure.

메모리 액세스에 최적화된 테이블에 액세스하는 트랜잭션Transactions that Access Memory-Optimized Tables

다음 표에서는 메모리 액세스에 최적화된 테이블에 액세스하는 트랜잭션과 관련된 오류의 메시지 텍스트에 나타날 수 있는 Transact-SQLTransact-SQL 기능 및 키워드와 오류를 해결하기 위한 수정 동작을 나열합니다.The following table lists the Transact-SQLTransact-SQL features and keywords that can appear in the message text of an error involving transactions that access memory-optimized tables, as well as the corrective action to resolve the error.

형식Type 이름Name 해결 방법Resolution
기능Feature 저장점(savepoint)savepoint 메모리 액세스에 최적화된 테이블에 액세스하는 트랜잭션에서 명시적인 저장점을 만드는 작업은 지원되지 않습니다.Creating explicit savepoints in transactions that access memory-optimized tables is not supported.
기능Feature 바운드 트랜잭션bound transaction 바운드 세션은 메모리 액세스에 최적화된 테이블에 액세스하는 트랜잭션에 참여할 수 없습니다.Bound sessions cannot participate in transactions that access memory-optimized tables. 프로시저를 실행하기 전에 세션을 바인딩하지 마십시오.Do not bind the session before executing the procedure.
기능Feature DTCDTC 메모리 액세스에 최적화된 테이블에 액세스하는 트랜잭션은 분산 트랜잭션일 수 없습니다.Transactions that access memory-optimized tables cannot be distributed transactions.

관련 항목:See Also

메모리 내 OLTP로 마이그레이션Migrating to In-Memory OLTP