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

Se aplica a:SQL ServerAzure SQL DatabaseAzure 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 toda la funcionalidad de Transact-SQL que sí admiten las tablas basadas en disco, los procedimientos almacenados interpretados de Transact-SQL y las funciones definidas por el usuario. 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 CIERRE AUTOMÁTICO 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 INSTANTÁNEA 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 mediante 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 (Comando para verificar la integridad de la base de datos)

DBCC CHECKTABLE (Comando utilizado para verificar la integridad de las tablas en SQL Server)
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 ENCENDIDO 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 tablas e índices con optimización 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 almacenamiento FILESTREAM. Quite la palabra clave FILESTREAM de la definición de columna.
Característica SPARSE Las columnas de tablas optimizadas para memoria no se pueden definir con el atributo 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 CLAVE EXTRANJERA 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 agrupado Especifique un índice no agrupado. 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 una transacción y asegúrese de que la configuración IMPLICIT_TRANSACTIONS de sesión es 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 base de datos en 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 del servidor y de la base de datos de 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. Quitar el argumento AS FileTable de la CREATE TABLE instrucción
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 en línea con la CREATE TABLE instrucción o con la ALTER TABLE instrucción .
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 y 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, elimine todas las filas mediante DELETE FROMtable o drop 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 la propiedad, elimine y vuelva a crear la tabla o el procedimiento.
Operación ALTER SCHEMA No se admite transferir una tabla existente o un procedimiento almacenado compilado de forma nativa a otro esquema. Elimine y vuelva a crear el objeto para transferirlo entre esquemas.
Operación DBCC CHECKTABLE (Comando utilizado para verificar la integridad de las tablas en SQL Server) 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 DESACTIVADO La opción ANSI_PADDING de sesión debe ser ON al crear tablas optimizadas para memoria o procedimientos almacenados compilados de forma nativa. Ejecute SET ANSI_PADDING ON antes de ejecutar la instrucción CREATE.
Opción COMPRESIÓN_DE_DATOS 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 optimizadas para memoria como destino de MERGE Las tablas optimizadas para memoria no pueden ser el destino de una MERGE operación. Use las instrucciones INSERT, UPDATE y DELETE en su lugar.

Í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 í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 hash no agrupados

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 hash no agrupados no están ordenados. 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 tabla en línea Los tipos de tablas no pueden declararse en línea con las declaraciones de variables. Los tipos de tabla se deben declarar explícitamente mediante una CREATE TYPE instrucción .
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 EXTERNO Los procedimientos almacenados CLR no se pueden compilar de forma nativa. Quite de la instrucción CREATE PROCEDURE la cláusula AS EXTERNAL o la opción NATIVE_COMPILATION.
Característica Procedimientos almacenados numerados Los procedimientos almacenados compilados de forma nativa no se pueden numerar. Elimine el ;número de la instrucción CREATE PROCEDURE.
Característica sentencias VALUES de varias filas INSERT ... No se pueden insertar varias filas con la misma INSERT instrucción en un procedimiento almacenado compilado de forma nativa. Cree sentencias 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 CÓMPUTO No se admite la cláusula COMPUTE . Quítelo 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 INTOTableSELECT.
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, sí admitimos restricciones DEFAULT y columnas IDENTITY(1,1) en tablas con optimización para memoria. Estas columnas pueden omitirse y, en el caso de las columnas IDENTITY, deben omitirse de la lista de columnas INSERT.
Característica Función 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 CASO 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 para cada caso. 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 del procedimiento la referencia a la función.
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 La cláusula FROM no se admite para DELETE instrucciones con un origen de tabla en procedimientos almacenados compilados de forma nativa.

DELETE con la cláusula FROM es compatible cuando se utiliza para indicar la tabla de la que se eliminarán los datos.
Característica UPDATE con la cláusula FROM La cláusula FROM no es compatible con las instrucciones UPDATE en procedimientos almacenados compilados de forma nativa.
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 LECTURA NO CONFIRMADA 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 (La lectura comprometida) 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 EJECUTAR CON RECOMPILE Los procedimientos almacenados compilados de forma nativa no admiten la opción WITH RECOMPILE .
Característica Ejecución desde la conexión dedicada de administrador 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 punto de guardado Los procedimientos almacenados compilados de manera nativa no se pueden invocar desde transacciones que tienen un punto de guardado activo. Elimine el punto de guardado 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 la propiedad, elimine y vuelva a crear la tabla o el procedimiento.
Operador OPENROWSET No se admite este operador. Quite OPENROWSET de un 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 DESPLAZAMIENTO 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 EXCEPTO No se admite este operador. Quite EXCEPT del procedimiento almacenado compilado de forma nativa.
Operador Aplicar Se aplica a: SQL Server 2014 (12.x) y SQL Server a partir de SQL Server 2016 (13.x)
No se admite este operador. Elimine 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 CONTIENE 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 Me gusta No se admite este operador. Quite LIKE del procedimiento almacenado compilado de forma nativa.
Operador SIGUIENTE VALOR PARA 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, consulte Implementar IDENTITY en una tabla optimizada para memoria.
Configurar opción opción SET No se pueden cambiar las opciones dentro de procedimientos almacenados compilados de forma nativa. Algunas opciones se pueden establecer con la instrucción BEGIN ATOMIC. Para obtener más información, consulte la sección sobre bloques atómicos en Procedimientos almacenados compilados de forma nativa.
Operando TABLESAMPLE No se admite este operador. Quitar 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 CIFRADO Esta opción no se admite. Quite ENCRYPTION de la definición de procedimiento.
Opción PARA SU REPLICACIÓN Los procedimientos almacenados compilados de forma nativa no se pueden crear para replicación. Se quitó FOR REPLICATION de la definición del procedimiento.
Opción FOR XML Esta opción no se admite. Quite FOR XML del procedimiento almacenado compilado de forma nativa.
Opción PARA NAVEGAR 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 hash ni las combinaciones por mezcla. Elimine la sugerencia de unió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 PORCENTAJE Esta opción no se admite con cláusulas TOP . Quite PERCENT de la consulta en el procedimiento almacenado compilado de forma nativa.
Opción CON VÍNCULOS 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 incluida en el procedimiento almacenado compilado de forma nativa.

Azure SQL Database y SQL Server a partir de SQL Server 2017 (14.x) admiten TOP WITH TIES.
Función agregada Función de agregación No todas las funciones de agregación son compatibles. 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 clasificación Función de clasificación Los procedimientos almacenados compilados de forma nativa no admiten funciones de categoría. Quítelas de la definición de procedimiento.
Función Función 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).
Sentencia Sentencia Esta declaració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 usados con cadenas binarias y de caracteres 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 AGRUPAR POR TODOS En los procedimientos almacenados compilados de forma nativa, ALL no se puede utilizar con cláusulas GROUP BY. Elimine 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 Resumen 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 DE AGRUPACIÓN 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. Debería 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 en línea.
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 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)
No se puede acceder a funciones de tabla con varias instrucciones desde módulos T-SQL compilados de forma nativa. Se admiten las funciones con valores de tabla en línea, pero deben crearse con 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 IMPRIMIR 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. Cuando se ejecuta una consulta, con STATISTICS XML habilitado, el contenido XML se devuelve sin la parte correspondiente al 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 punto de guardado No se admite la creación de puntos de guardado explícitos en transacciones que acceden a tablas optimizadas para memoria.
Característica transacción vinculada Las sesiones vinculadas no pueden participar en transacciones que acceden a tablas optimizadas para la 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