Compartir por


Construcciones de Transact-SQL no admitidas en In-Memory OLTP.

Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance

Las tablas con optimización para memoria, los procedimientos almacenados compilados de forma nativa y las funciones definidas por el usuario no admiten el área expuesta completa de Transact-SQL , pero las tablas basadas en disco, los procedimientos almacenados interpretados de Transact-SQL y las funciones definidas por el usuario sí la admiten. Cuando se intenta usar una de las características no admitidas, el servidor devuelve un error.

El mensaje de error menciona el tipo de instrucción Transact-SQL (por ejemplo, característica, operación, opción) y el nombre de la característica o palabra clave de Transact-SQL. La mayor parte de características no admitidas devolverán el error 10794, con un mensaje de error que indique la función no admitida. En las tablas siguientes se enumeran las características y las palabras clave de Transact-SQL que pueden aparecer en el texto del mensaje de error, así como la acción correctiva para resolver el error.

Para obtener más información sobre las características admitidas con las tablas optimizadas para memoria y los procedimientos almacenados compilados de forma nativa, vea:

Bases de datos que utilizan OLTP en memoria

En la siguiente tabla se enumeran las características de Transact-SQL no compatibles y las palabras clave que pueden aparecer en el texto del mensaje de error que implica una base de datos OLTP en memoria. La tabla también muestra la resolución del error.

Tipo Nombre Solución
Opción AUTO_CLOSE La opción de base de datos AUTO_CLOSE=ON no se admite con las bases de datos que tienen un grupo de archivos MEMORY_OPTIMIZED_DATA.
Opción ATTACH_REBUILD_LOG La opción de base de datos ATTACH_REBUILD_LOG de CREATE no se admite con las bases de datos que tienen un grupo de archivos MEMORY_OPTIMIZED_DATA.
Característica DATABASE SNAPSHOT La creación de instantáneas de base de datos no se admite con las bases de datos que tienen un grupo de archivos MEMORY_OPTIMIZED_DATA.
Característica Replicación con el sync_method 'database snapshot' o 'database snapshot character' La replicación con sync_method 'database snapshot' o 'database snapshot character' no se admite con las bases de datos que tienen un grupo de archivos MEMORY_OPTIMIZED_DATA.
Característica DBCC CHECKDB

DBCC CHECKTABLE
DBCC CHECKDB omite las tablas optimizadas para memoria en la base de datos.

DBCC CHECKTABLE producirá un error en las tablas optimizadas para memoria.

Tablas optimizadas para la memoria

En la siguiente tabla se enumeran las características de Transact-SQL no compatibles y las palabras clave que pueden aparecer en el texto del mensaje de error que implica una tabla optimizada para memoria. La tabla también muestra la resolución del error.

Tipo Nombre Solución
Característica ACTIVAR Las tablas con optimización para memoria no se pueden colocar en un grupo de archivos ni en un esquema de partición. Quite la cláusula ON de la instrucción CREATE TABLE .

Todas las tablas optimizadas para memoria se asignan al grupo de archivos optimizados para memoria.
Tipo de datos Nombre del tipo de datos No se admite el tipo de datos indicado. Reemplace el tipo por uno de los tipos de datos admitidos. Para obtener más información, vea Tipos de datos admitidos para OLTP en memoria.
Característica Columnas calculadas Se aplica a: SQL Server 2014 (12.x) y SQL Server 2016 (13.x)
Las tablas optimizadas para memoria no admiten columnas calculadas. Quite las columnas calculadas de la instrucción CREATE TABLE .

Azure SQL Database y SQL Server a partir de SQL Server 2017 (14.x) admiten columnas calculadas en las tablas e índices optimizados para memoria.
Característica Replicación La replicación no es compatible con las tablas optimizadas para memoria.
Característica FILESTREAM Las columnas de las tablas optimizadas para memoria no admiten el almacenamiento FILESTREAM. Quite la palabra clave FILESTREAM de la definición de columna.
Característica SPARSE Las columnas de las tablas optimizadas para memoria no se pueden definir como columnas SPARSE. Quite la palabra clave SPARSE de la definición de columna.
Característica ROWGUIDCOL Las columnas de las tablas optimizadas para memoria no admiten la opción ROWGUIDCOL. Quite la palabra clave ROWGUIDCOL de la definición de columna.
Característica FOREIGN KEY Se aplica a: Azure SQL Database y SQL Server a partir de SQL Server 2016 (13.x)
En tablas optimizadas para memoria, las restricciones FOREIGN KEY solo se admiten para claves externas que hacen referencia a las claves principales de otras tablas optimizadas para memoria. Quite la restricción de la definición de tabla si la clave externa hace referencia a una restricción única.

En SQL Server 2014 (12.x), no se admiten las restricciones FOREIGN KEY en las tablas optimizadas para memoria.
Característica índice clúster Especifique un índice no clúster. Si se trata de un índice de clave principal, no se olvide de especificar PRIMARY KEY NONCLUSTERED.
Característica DDL dentro de transacciones Las tablas con optimización para memoria y los procedimientos almacenados compilados de forma nativa no se pueden crear ni quitar en el contexto de una transacción de usuario. No inicie ninguna transacción y asegúrese de que el parámetro de sesión IMPLICIT_TRANSACTIONS está establecido en OFF antes de ejecutar la instrucción CREATE o DROP.
Característica Desencadenadores DDL Las tablas con optimización para memoria y los procedimientos almacenados compilados de forma nativa no se pueden crear ni quitar si existe un desencadenador de base de datos o de servidor para la operación DDL. Quite los desencadenadores de servidor y de base de datos de CREATE/DROP TABLE y CREATE/DROP PROCEDURE.
Característica EVENT NOTIFICATION Las tablas con optimización para memoria y los procedimientos almacenados compilados de forma nativa no se pueden crear ni quitar si existe una notificación de evento de base de datos o de servidor para la operación DDL. Quite las notificaciones de eventos de servidor y de base de datos en CREATE TABLE o DROP TABLE y CREATE PROCEDURE o DROP PROCEDURE.
Característica FileTable Las tablas con optimización para memoria no se pueden crear como tablas de archivos. Quite el argumento AS FileTable de la instrucción CREATE TABLE .
Operación Actualización de columnas de clave principal Las columnas de clave principal de las tablas optimizadas para memoria y los tipos de tablas no se pueden actualizar. Si es necesario actualizar la clave principal, elimine la fila antigua e inserte la nueva fila con la clave principal actualizada.
Operación CREATE INDEX Los índices de las tablas optimizadas para memoria deben especificarse insertados con la instrucción CREATE TABLE o con la instrucción ALTER TABLE .
Operación CREATE FULLTEXT INDEX … Las tablas optimizadas para memoria no admiten índices de texto completo.
Operación Cambios en los esquemas Las tablas con optimización para memoria y los procedimientos almacenados compilados de forma nativa no admiten determinados cambios en los esquemas:
Azure SQL Database y SQL Server a partir de SQL Server 2017 (14.x): se admiten las operaciones ALTER TABLE, ALTER PROCEDURE y sp_rename. No se admiten otros cambios en el esquema, por ejemplo, al agregar propiedades extendidas.

SQL Server 2016 (13.x): Se admiten las operaciones ALTER TABLE, ALTER PROCEDURE. No se admiten otros cambios en el esquema, incluido sp_rename.

SQL Server 2014 (12.x): No se admiten los cambios de esquema. Para cambiar la definición de una tabla con optimización para memoria o un procedimiento almacenado compilado de forma nativa, primero quite el objeto y, a continuación, vuelva a crearlo con la definición deseada.
Operación TRUNCATE TABLE Las tablas optimizadas para memoria no admiten la operación TRUNCATE. Para quitar todas las filas de una tabla, elimínelas con la tabla ELIMINAR DE o suprima y vuelva a crear la tabla.
Operación ALTER AUTHORIZATION No es posible cambiar el propietario de una tabla optimizada para memoria o de un procedimiento almacenado compilado de forma nativa existente. Para cambiar el propietario, quite y vuelva a crear la tabla o el procedimiento.
Operación ALTER SCHEMA No se admite la transferencia de una tabla o de un procedimiento almacenado compilado de forma nativa existente. Quite y vuelva a crear el objeto que va a transferir entre esquemas.
Operación DBCC CHECKTABLE DBCC CHECKTABLE no es compatible con las tablas optimizadas para memoria. Para comprobar la integridad de los archivos de punto de control en el disco, realice una copia de seguridad del grupo de archivos MEMORY_OPTIMIZED_DATA.
Característica ANSI_PADDING OFF Cuando se crean tablas optimizadas para memoria o procedimientos almacenados compilados de forma nativa, la opción de sesión ANSI_PADDING debe estar establecida en ON. Ejecute SET ANSI_PADDING ON antes de ejecutar la instrucción CREATE.
Opción DATA_COMPRESSION Las tablas optimizadas para memoria no admiten la compresión de datos. Quite la opción de la definición de tabla.
Característica DTC No se puede tener acceso a las tablas con optimización para memoria ni a los procedimientos almacenados compilados de forma nativa desde transacciones distribuidas. En su lugar, use transacciones SQL.
Operación Tablas con optimización para memoria como destino de MERGE Las tablas con optimización para memoria no pueden ser el destino de una operación MERGE . En su lugar, use las instrucciones INSERT, UPDATE y DELETE.

Índices de las tablas con optimización para memoria

En la tabla siguiente se enumeran las características y las palabras clave de Transact-SQL que pueden aparecer en el texto de un mensaje de error relacionado con un índice de una tabla optimizada para memoria, así como la acción correctiva para resolver el error.

Tipo Nombre Solución
Característica Índice filtrado Las tablas optimizadas para memoria no admiten índices filtrados. Omita la cláusula WHERE en la especificación de índice.
Característica Columnas incluidas No es necesario especificar columnas incluidas en las tablas optimizadas para memoria. Todas las columnas de la tabla optimizada para memoria se incluyen de forma implícita en cada índice optimizado para memoria.
Operación DROP INDEX No es posible quitar los índices de las tablas optimizadas para memoria. Puede eliminar los índices mediante ALTER TABLE.

Para obtener más información, vea Modificar tablas con optimización para memoria.
Opción de índice Opción de índice Solo se admite una opción de índice (BUCKET_COUNT) para los índices HASH.

Índices de hash no clúster

En la tabla siguiente se enumeran las características y las palabras clave de Transact-SQL que pueden aparecer en el texto de un mensaje de error relacionado con un índice de hash no clúster, así como la acción correctiva para resolver el error.

Tipo Nombre Solución
Opción ASC/DESC Los índices de hash no clúster no se ordenan. Quite las palabras clave ASC y DESC de la especificación de clave de índice.

Procedimientos almacenados compilados de forma nativa y funciones definidas por el usuario

En la tabla siguiente se enumeran las características y las palabras clave de Transact-SQL que pueden aparecer en el texto de un mensaje de error relacionado con procedimientos almacenados compilados de forma nativa y funciones definidas por el usuario, así como la acción correctiva para resolver el error.

Tipo Característica Solución
Característica Variables de las tablas insertadas Los tipos de tablas no pueden declararse insertadas con declaraciones de variable. Los tipos de tablas deben declararse de forma explícita mediante una instrucción CREATE TYPE .
Característica Cursores Los procedimientos almacenados compilados de forma nativa no admiten cursores.

Cuando ejecute el procedimiento desde el cliente, utilice RPC en lugar de la API de cursores. Con ODBC, evite la instrucción Transact-SQL EXECUTE, en su lugar, especifique el nombre del procedimiento directamente.

Cuando ejecute el procedimiento desde un lote de Transact-SQL o desde otro procedimiento almacenado, evite usar un cursor con el procedimiento almacenado compilado de forma nativa.

Cuando cree un procedimiento almacenado compilado de forma nativa, en lugar de un cursor, use la lógica basada en conjunto o un bucle WHILE .
Característica Valores predeterminados de parámetros no constantes Cuando se usan los valores predeterminados de los parámetros en procedimientos almacenados compilados de forma nativa, dichos valores deben ser constantes. Quite los caracteres comodín de las declaraciones de parámetro.
Característica EXTERNAL Los procedimientos almacenados CLR no se pueden compilar de forma nativa. Quite la cláusula AS EXTERNAL o la opción de NATIVE_COMPILATION de la instrucción CREATE PROCEDURE.
Característica Procedimientos almacenados numerados Los procedimientos almacenados compilados de forma nativa no se pueden numerar. Quite ;number de la instrucción CREATE PROCEDURE .
Característica instrucciones de varias filas INSERT ... VALUES En un procedimiento almacenado compilado de forma nativa no se pueden insertar varias filas usando la misma instrucción INSERT . Cree instrucciones INSERT para cada fila.
Característica Expresiones de tabla común (CTE) Los procedimientos almacenados compilados de forma nativa no admiten expresiones de tabla común (CTE). Vuelva a escribir la consulta.
Característica COMPUTE No se admite la cláusula COMPUTE . Quítela de la consulta.
Característica SELECT INTO La cláusula INTO no se puede usar con la instrucción SELECT . Vuelva a escribir la consulta como INSERT INTO Table SELECT.
Característica Lista de columnas insertadas incompleta En general, en las instrucciones INSERT, deben especificarse valores para todas las columnas de la tabla.

Sin embargo, se admiten las restricciones DEFAULT y las columnas IDENTITY(1,1) en tablas optimizadas para memoria. Estas columnas pueden omitirse de la lista de columnas INSERT. En el caso de columnas IDENTITY, la omisión es obligatoria.
Característica Function Los procedimientos almacenados compilados de forma nativa no admiten algunas funciones integradas. Quite la función rechazada del procedimiento almacenado. Para obtener más información sobre las funciones integradas admitidas, vea
Características admitidas en los módulos T-SQL compilados de forma nativao
Procedimientos almacenados compilados de forma nativa.
Característica CASE Se aplica a: SQL Server 2014 (12.x) y SQL Server a partir de SQL Server 2016 (13.x)
Las expresiones CASE no se admiten en las consultas en procedimientos almacenados compilados de forma nativa. Cree consultas diferentes para mayúsculas y minúsculas. Para obtener más información, vea Implementación de una expresión CASE de un procedimiento almacenado compilado de forma nativa.

Azure SQL Database y SQL Server a partir de SQL Server 2017 (14.x) admiten expresiones CASE.
Característica INSERT EXECUTE Quite la referencia.
Característica Ejecute Solo se admite para ejecutar procedimientos almacenados de forma nativa y funciones definidas por el usuario.
Característica agregados definidos por el usuario En los procedimientos almacenados compilados de forma nativa no se pueden usar funciones de agregado definidas por el usuario. Quite la referencia a la función del procedimiento.
Característica Metadatos en el modo de exploración Los procedimientos almacenados compilados de forma nativa no admiten metadatos en el modo de exploración. Asegúrese de que la opción de sesión NO_BROWSETABLE está establecida en OFF.
Característica DELETE con la cláusula FROM Los procedimientos almacenados compilados de forma nativa no admiten la cláusula FROM en instrucciones DELETE con un origen de tabla.

DELETE con la cláusula FROM se admite cuando se emplea para indicar la tabla en la que hay que realizar la eliminación.
Característica UPDATE con la cláusula FROM Los procedimientos almacenados compilados de forma nativa no admiten la cláusula FROM en instrucciones UPDATE .
Característica Procedimientos temporales Los procedimientos almacenados temporales no se pueden compilar de forma nativa. Cree un procedimiento almacenado compilado de forma nativa que sea permanente o un procedimiento almacenado interpretado de Transact-SQL que sea temporal.
Nivel de aislamiento READ UNCOMMITTED Los procedimientos almacenados compilados de forma nativa no admiten el nivel de aislamiento READ UNCOMMITTED. Use un nivel de aislamiento compatible, como SNAPSHOT.
Nivel de aislamiento READ COMMITTED Los procedimientos almacenados compilados de forma nativa no admiten el nivel de aislamiento READ COMMITTED. Use un nivel de aislamiento compatible, como SNAPSHOT.
Característica tablas temporales En los procedimientos almacenados compilados de forma nativa no se pueden usar tablas de tempdb. En su lugar, use una variable de tabla o una tabla optimizada para memoria con DURABILITY=SCHEMA_ONLY.
Característica DTC No se puede tener acceso a las tablas con optimización para memoria ni a los procedimientos almacenados compilados de forma nativa desde transacciones distribuidas. En su lugar, use transacciones SQL.
Característica EXECUTE WITH RECOMPILE Los procedimientos almacenados compilados de forma nativa no admiten la opción WITH RECOMPILE .
Característica Ejecución de la conexión de administrador dedicada Los procedimientos almacenados compilados de forma nativa no se pueden ejecutar desde la conexión de administrador dedicada (DAC). En su lugar, use una conexión normal.
Operación savepoint Los procedimientos almacenados compilados de forma nativa no se pueden invocar desde transacciones que tienen un punto de retorno activo. Quite el punto retorno de la transacción.
Operación ALTER AUTHORIZATION No es posible cambiar el propietario de una tabla optimizada para memoria o de un procedimiento almacenado compilado de forma nativa existente. Para cambiar el propietario, quite y vuelva a crear la tabla o el procedimiento.
Operador OPENROWSET No se admite este operador. Quite OPENROWSET del procedimiento almacenado compilado de forma nativa.
Operador OPENQUERY No se admite este operador. Quite OPENQUERY del procedimiento almacenado compilado de forma nativa.
Operador OPENDATASOURCE No se admite este operador. Quite OPENDATASOURCE del procedimiento almacenado compilado de forma nativa.
Operador OPENXML No se admite este operador. Quite OPENXML del procedimiento almacenado compilado de forma nativa.
Operador CONTAINSTABLE No se admite este operador. Quite CONTAINSTABLE del procedimiento almacenado compilado de forma nativa.
Operador FREETEXTTABLE No se admite este operador. Quite FREETEXTTABLE del procedimiento almacenado compilado de forma nativa.
Característica Funciones con valores de tabla En los procedimientos almacenados compilados de forma nativa no se puede hacer referencia a funciones con valores de tabla. Una solución posible para esta restricción es agregar la lógica de las funciones con valores de tabla al cuerpo del procedimiento.
Operador CHANGETABLE No se admite este operador. Quite CHANGETABLE del procedimiento almacenado compilado de forma nativa.
Operador GOTO No se admite este operador. Use otras construcciones de procedimiento, como WHILE.
Operador OFFSET No se admite este operador. Quite OFFSET del procedimiento almacenado compilado de forma nativa.
Operador INTERSECT No se admite este operador. Quite INTERSECT del procedimiento almacenado compilado de forma nativa. En algunos casos se puede usar INNER JOIN para obtener el mismo resultado.
Operador EXCEPT No se admite este operador. Quite EXCEPT del procedimiento almacenado compilado de forma nativa.
Operador APPLY Se aplica a: SQL Server 2014 (12.x) y SQL Server a partir de SQL Server 2016 (13.x)
No se admite este operador. Quite APPLY del procedimiento almacenado compilado de forma nativa.

Azure SQL Database y SQL Server a partir de SQL Server 2017 (14.x) admiten el operador APPLY en los módulos compilados de forma nativa.
Operador PIVOT No se admite este operador. Quite PIVOT del procedimiento almacenado compilado de forma nativa.
Operador UNPIVOT No se admite este operador. Quite UNPIVOT del procedimiento almacenado compilado de forma nativa.
Operador CONTAINS No se admite este operador. Quite CONTAINS del procedimiento almacenado compilado de forma nativa.
Operador FREETEXT No se admite este operador. Quite FREETEXT del procedimiento almacenado compilado de forma nativa.
Operador TSEQUAL No se admite este operador. Quite TSEQUAL del procedimiento almacenado compilado de forma nativa.
Operador LIKE No se admite este operador. Quite LIKE del procedimiento almacenado compilado de forma nativa.
Operador NEXT VALUE FOR En los procedimientos almacenados compilados de forma nativa no se puede hacer referencia a secuencias. Obtenga el valor usando Transact-SQL interpretado y, a continuación, páselo al procedimiento almacenado compilado de forma nativa. Para obtener más información, vea Implementar IDENTITY en una tabla con optimización para memoria.
Opción SET option En los procedimientos almacenados compilados de forma nativa no se pueden cambiar las opciones SET. Algunas opciones se pueden establecer con la instrucción BEGIN ATOMIC. Para obtener más información, vea la sección sobre bloques ATOMIC en Procedimientos almacenados compilados de forma nativa.
Operando TABLESAMPLE No se admite este operador. Quite TABLESAMPLE del procedimiento almacenado compilado de forma nativa.
Opción RECOMPILE Los procedimientos almacenados compilados de forma nativa se compilan en el momento de su creación. Quite RECOMPILE de la definición de procedimiento.

Si ejecuta sp_recompile en un procedimiento almacenado compilado de forma nativa, hará que se vuelva a compilar en la siguiente ejecución.
Opción ENCRYPTION Esta opción no se admite. Quite ENCRYPTION de la definición de procedimiento.
Opción FOR REPLICATION Los procedimientos almacenados compilados de forma nativa no se pueden crear para replicación. Quite FOR REPLICATION de la definición de procedimiento.
Opción FOR XML Esta opción no se admite. Quite FOR XML del procedimiento almacenado compilado de forma nativa.
Opción FOR BROWSE Esta opción no se admite. Quite FOR BROWSE del procedimiento almacenado compilado de forma nativa.
Sugerencia de combinación HASH, MERGE Los procedimientos almacenados compilados de forma nativa solo admiten las combinaciones de bucles anidados. No se admiten las combinaciones de mezcla ni las combinaciones de hash. Quite la sugerencia de combinación.
Sugerencia de consulta Sugerencia de consulta Esta sugerencia de consulta no está en los procedimientos almacenados compilados de forma nativa. Para conocer las sugerencias de consulta compatibles, vea Sugerencias de consulta (Transact-SQL).
Opción PERCENT Esta opción no se admite con cláusulas TOP . Quite PERCENT de la consulta del procedimiento almacenado compilado de forma nativa.
Opción WITH TIES Se aplica a: SQL Server 2014 (12.x) y SQL Server 2016 (13.x)
Esta opción no se admite con cláusulas TOP . Quite WITH TIES de la consulta del procedimiento almacenado compilado de forma nativa.

Azure SQL Database y SQL Server a partir de SQL Server 2017 (14.x) admiten TOP WITH TIES.
Aggregate, función Función de agregado No se admiten todas las funciones de agregado. Para obtener más información sobre las funciones agregadas admitidas en los módulos T-SQL compilados de forma nativa, vea Supported Features for Natively Compiled T-SQL Modules (Características admitidas en los módulos T-SQL compilados de forma nativa).
Función de categoría Función de categoría Los procedimientos almacenados compilados de forma nativa no admiten funciones de categoría. Quítelas de la definición de procedimiento.
Función Function Esta función no se admite. Para obtener más información sobre las funciones admitidas en los módulos T-SQL compilados de forma nativa, vea Supported Features for Natively Compiled T-SQL Modules (Características admitidas en los módulos T-SQL compilados de forma nativa).
Instrucción Instrucción Esta instrucción no se admite. Para obtener más información sobre las funciones admitidas en los módulos T-SQL compilados de forma nativa, vea Supported Features for Natively Compiled T-SQL Modules (Características admitidas en los módulos T-SQL compilados de forma nativa).
Característica MIN y MAX utilizados con las cadenas de caracteres y binarias En los procedimientos almacenados compilados de forma nativa no se pueden usar las funciones de agregado MIN y MAX con valores de cadenas de caracteres y binarias.
Característica GROUP BY ALL En los procedimientos almacenados compilados de forma nativa, ALL no se puede utilizar con cláusulas GROUP BY. Quite ALL de la cláusula GROUP BY.
Característica GROUP BY () No se admite la agrupación por una lista vacía. Quite la cláusula GROUP BY o incluya las columnas en la lista de agrupación.
Característica ROLLUP En los procedimientos almacenados compilados de forma nativa,ROLLUP no se puede utilizar con cláusulas GROUP BY . Quite ROLLUP de la definición de procedimiento.
Característica CUBE En los procedimientos almacenados compilados de forma nativa,CUBE no se puede utilizar con cláusulas GROUP BY . Quite CUBE de la definición de procedimiento.
Característica CONJUNTOS GROUPING En los procedimientos almacenados compilados de forma nativa,GROUPING SETS no se puede utilizar con cláusulas GROUP BY . Quite GROUPING SETS de la definición de procedimiento.
Característica BEGIN TRANSACTION, COMMIT TRANSACTION y ROLLBACK TRANSACTION Utilice bloques ATÓMICOS para controlar las transacciones y tratar los errores. Para obtener más información, consulte Atomic Blocks.
Característica Declaraciones de variable de tabla alineada. Las variables de tabla deben hacer referencia explícitamente a los tipos definidos de tabla optimizada para memoria. Debe crear un tipo de tabla optimizada para memoria y usar ese tipo para la declaración de la variable, en lugar de especificar el tipo insertado.
Característica Tablas basadas en disco No se puede tener acceso a las tablas basadas en disco desde procedimientos almacenados compilados de forma nativa. Quite las referencias a las tablas basadas en disco desde los procedimientos almacenados compilados de forma nativa. O bien, migre las tablas basadas en disco a la memoria optimizada.
Característica Vistas No se puede tener acceso a las vistas desde procedimientos almacenados compilados de forma nativa. En lugar de a las vistas, haga referencia a las tablas base subyacentes.
Característica Funciones con valores de tabla Se aplica a: Azure SQL Database y SQL Server a partir de SQL Server 2016 (13.x)
En los módulos T-SQL compilados de forma nativa no se puede tener acceso a funciones con valores de tabla de varias instrucciones. Se admiten las funciones con valores de tabla insertadas, pero deben crearse con la opción NATIVE_COMPILATION.

Se aplica a: SQL Server 2014 (12.x)
En los módulos T-SQL compilados de forma nativa no se puede hacer referencia a funciones con valores de tabla.
Opción PRINT Quitar referencia
Característica DDL No se admite DDL en los módulos T-SQL compilados de forma nativa.
Opción STATISTICS XML No admitida. Al ejecutar una consulta con STATISTICS XML habilitada, el contenido XML se devuelve sin la parte del procedimiento almacenado compilado de forma nativa.

Transacciones que tienen acceso a tablas con optimización para memoria

En la tabla siguiente se enumeran las características y las palabras clave de Transact-SQL que pueden aparecer en el texto de un mensaje de error relacionado con transacciones que tienen acceso a tablas optimizadas para memoria, así como la acción correctiva para resolver el error.

Tipo Nombre Solución
Característica savepoint No se pueden crear puntos de retorno explícitos en transacciones que tienen acceso a tablas optimizadas para memoria.
Característica Transacción enlazada Las sesiones enlazadas no pueden participar en transacciones que tienen acceso a tablas optimizadas para memoria. No enlace la sesión antes de ejecutar el procedimiento.
Característica DTC Las transacciones que tienen acceso a tablas optimizadas para memoria no pueden ser transacciones distribuidas.

Consulte también

Migrar a OLTP en memoria