Partilhar via


Construções do Transact-SQL sem suporte pelo OLTP na memória

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure

As tabelas com otimização de memória, procedimentos armazenados com compilação nativa e funções definidas pelo usuário não dão suporte à área da superfície completa do Transact-SQL que tem suporte em tabelas com base em disco, procedimentos armazenados do Transact-SQL interpretados e funções definidas pelo usuário. Ao tentar usar um dos recursos sem suporte, o servidor retornará um erro.

O texto da mensagem de erro aponta o tipo da instrução Transact-SQL (recurso, operação, opção, por exemplo), bem como o nome do recurso ou palavra-chave do Transact-SQL. A maioria dos recursos sem suporte retornará o erro 10794, com o texto da mensagem de erro que o recurso não tem suporte. As tabelas a seguir listam os recursos e as palavras-chave do Transact-SQL que podem aparecer no texto da mensagem de erro, bem como a ação corretiva para resolver o erro.

Para obter mais informações sobre os recursos com suporte em tabelas com otimização de memória e procedimentos armazenados nativamente compilados, consulte:

Bancos de dados que usam OLTP na memória

A tabela a seguir lista os recursos do Transact-SQL que não têm suporte, além das palavras-chave que podem ser exibidas no texto da mensagem de erro que envolve um banco de dados de OLTP in-memory. A tabela também lista a resolução para o erro.

Tipo Nome Resolução
Opção AUTO_CLOSE A opção de banco de dados AUTO_CLOSE=ON não tem suporte nos bancos de dados que têm um grupo de arquivos MEMORY_OPTIMIZED_DATA.
Opção ATTACH_REBUILD_LOG A opção ATTACH_REBUILD_LOG do banco de dados CREATE não tem suporte nos bancos de dados que têm um grupo de arquivos MEMORY_OPTIMIZED_DATA.
Recurso DATABASE SNAPSHOT Não há suporte para a criação de instantâneos de banco de dados nos bancos de dados que têm um grupo de arquivos MEMORY_OPTIMIZED_DATA.
Recurso Replicação usando o sync_method 'database snapshot' ou 'database snapshot character' A replicação através do sync_method 'database snapshot' ou 'database snapshot character' não tem suporte nos bancos de dados que têm um grupo de arquivos MEMORY_OPTIMIZED_DATA.
Recurso DBCC CHECKDB

DBCC CHECKTABLE
DBCC CHECKDB ignora as tabelas com otimização de memória no banco de dados.

DBCC CHECKTABLE apresentará falha nas tabelas com otimização de memória.

Tabelas com otimização de memória

A tabela a seguir lista os recursos do Transact-SQL que não têm suporte, além das palavras-chave que podem ser exibidas no texto da mensagem de erro que envolve uma tabela com otimização de memória. A tabela também lista a resolução para o erro.

Tipo Nome Resolução
Recurso ATIVADO As tabelas com otimização de memória não podem ser colocadas em um grupo de arquivos ou esquema de partição. Remova a cláusula ON da instrução CREATE TABLE .

Todas as tabelas com otimização de memória são mapeadas para um grupo de arquivos com otimização de memória.
Tipo de dados Nome do tipo de dados Não há suporte para o tipo de dados indicado. Substitua o tipo por um dos tipos de dados com suporte. Para obter mais informações, veja Tipos de dados com suporte no OLTP in-memory.
Recurso Colunas computadas Aplica-se a: SQL Server 2014 (12.x) e SQL Server 2016 (13.x)
As colunas computadas não têm suporte para tabelas com otimização de memória. Remova as colunas computadas da instrução CREATE TABLE .

O banco de dados SQL do Azure e o SQL Server começando pelo SQL Server 2017 (14.x) são compatíveis com colunas computadas em tabelas com otimização de memória e índices.
Recurso Replicação Não há suporte para a replicação nas tabelas com otimização de memória.
Recurso FILESTREAM O armazenamento FILESTREAM não tem suporte para colunas de tabelas com otimização de memória. Remova a palavra-chave FILESTREAM da definição de coluna.
Recurso SPARSE As colunas de tabelas com otimização de memória não podem ser definidas como SPARSE. Remova a palavra-chave SPARSE da definição de coluna.
Recurso ROWGUIDCOL A opção ROWGUIDCOL não tem suporte para colunas de tabelas com otimização de memória. Remova a palavra-chave ROWGUIDCOL da definição de coluna.
Recurso FOREIGN KEY Aplica-se a: banco de dados SQL do Azure e SQL Server a partir do SQL Server 2016 (13.x)
Para tabelas com otimização de memória, há suporte para as restrições de FOREIGN KEY apenas em chaves estrangeiras que referenciam chaves primárias de outras tabelas com otimização de memória. Remova a restrição da definição de tabela se a chave estrangeira referenciar uma restrição exclusiva.

No SQL Server 2014 (12.x), não há suporte para as restrições de FOREIGN KEY em tabelas com otimização de memória.
Recurso índice clusterizado Especifique um índice não clusterizado. No caso de um índice de chave primária, especifique PRIMARY KEY NONCLUSTERED.
Recurso DDL em transações As tabelas com otimização de memória e os procedimentos armazenados nativamente compilados não podem se criadas nem descartadas no contexto de uma transação de usuário. Não inicie uma transação e garanta que a configuração da sessão IMPLICIT_TRANSACTIONS esteja OFF antes de executar a instrução CREATE ou DROP.
Recurso Gatilhos DDL As tabelas com otimização de memória e os procedimentos armazenados nativamente compilados não poderão ser criadas nem descartadas se houver um gatilho de servidor ou banco de dados para a operação DDL. Remover os gatilhos de servidor e banco de dados em CREATE/DROP TABLE e CREATE/DROP PROCEDURE.
Recurso EVENT NOTIFICATION As tabelas com otimização de memória e os procedimentos armazenados compilados de modo nativo não poderão ser criados nem removidos se houver uma notificação de evento de servidor ou de banco de dados para essa operação DDL. Remova as notificações de eventos de servidor e de banco de dados em CREATE TABLE ou DROP TABLE e em CREATE PROCEDURE ou DROP PROCEDURE.
Recurso FileTable As tabelas com otimização de memória não podem ser criadas como tabelas de arquivo. Remova o argumento AS FileTable da instrução CREATE TABLE
Operação Atualização de colunas de chave primária As colunas de chave primária nas tabelas com otimização de memória e em tipos de tabela não podem ser atualizadas. Se a chave primária precisar ser atualizada, exclua a linha antiga e insira a nova linha com a chave primária atualizada.
Operação CREATE INDEX Os índices nas tabelas com otimização de memória devem ser especificados embutidos com a instrução CREATE TABLE , ou com a instrução ALTER TABLE .
Operação CREATE FULLTEXT INDEX Os índices de texto completo não têm suporte para tabelas com otimização de memória.
Operação alteração de esquema Tabelas com otimização de memória e procedimentos armazenados compilados nativamente não dão suporte a algumas alterações de esquema:
O banco de dados SQL do Azure e SQL Server começando pelo SQL Server 2017 (14.x): as operações ALTER TABLE, ALTER PROCEDURE e sp_rename são suportadas. Não há suporte para outras alterações de esquema, por exemplo, adição de propriedades estendidas.

SQL Server 2016 (13.x): as operações ALTER TABLE e ALTER PROCEDURE são suportadas. Não há suporte para outras alterações de esquema, incluindo sp_rename.

SQL Server 2014 (12.x): não há suporte para alterações de esquema. Para alterar a definição de uma tabela com otimização de memória ou um procedimento armazenado com compilação nativa, primeiro remova o objeto e, em seguida, recrie-o com a definição desejada.
Operação TRUNCATE TABLE A operação TRUNCATE não tem suporte para tabelas com otimização de memória. Para remover todas as linhas de uma tabela, exclua todas as linhas usando DELETE FROM table ou remova e recrie a tabela.
Operação ALTER AUTHORIZATION Não há suporte para alteração do proprietário de uma tabela com otimização de memória ou procedimentos armazenados nativamente compilados existentes. Descarte e recrie a tabela ou o procedimento para alterar a propriedade.
Operação ALTER SCHEMA Não há suporte para a transferência de uma tabela ou de um procedimento armazenado compilado nativamente existente para outro esquema. Remova e recrie o objeto para fazer a transferência entre esquemas.
Operação DBCC CHECKTABLE Não há suporte para DBCC CHECKTABLE em tabelas com otimização de memória. Para verificar a integridade dos arquivos de ponto de verificação em disco, faça um backup do grupo de arquivos MEMORY_OPTIMIZED_DATA.
Recurso ANSI_PADDING OFF A opção de sessão ANSI_PADDING deve estar ON na criação de tabelas com otimização de memória ou procedimentos armazenados compilados de modo nativo. Execute SET ANSI_PADDING ON antes de executar a instrução CREATE.
Opção DATA_COMPRESSION A compactação de dados não tem suporte para tabelas com otimização de memória. Remova a opção da definição de tabela.
Recurso DTC As tabelas com otimização de memória e os procedimentos armazenados nativamente compilados não podem ser acessados de transações distribuídas. Em vez disso, use transações SQL.
Operação Tabelas com otimização de memória como destino de MERGE As tabelas com otimização de memória não podem ser o destino de uma operação MERGE . Em vez disso, use as instruções INSERT, UPDATE e DELETE.

Índices em tabelas com otimização de memória

A tabela a seguir lista os recursos e as palavras-chave do Transact-SQL que podem aparecer no texto da mensagem de um erro que envolve um índice em uma tabela com otimização de memória, bem como a ação corretiva para resolver o erro.

Tipo Nome Resolução
Recurso Índice filtrado Os índices filtrados não têm suporte com tabelas com otimização de memória. Omita a cláusula WHERE da especificação de índice.
Recurso Colunas incluídas Especificar colunas incluídas não é necessário para tabelas com otimização de memória. Todas as colunas da tabela com otimização de memória são incluídas implicitamente em cada índice com otimização de memória.
Operação DROP INDEX Não há suporte para o descarte de índices nas tabelas com otimização de memória. Você pode excluir índices usando ALTER TABLE.

Para obter mais informações, veja Alterando tabelas com otimização de memória.
Opção de índice Opção de índice Há suporte para apenas uma opção de índice, o BUCKET_COUNT, para índices de HASH.

Índices de hash não clusterizados

A tabela a seguir lista os recursos e as palavras-chave do Transact-SQL que podem aparecer no texto da mensagem de um erro que envolve um índice de hash não clusterizado, bem como a ação corretiva para resolver o erro.

Tipo Nome Resolução
Opção ASC/DESC Os índices de hash não clusterizados não são ordenados. Remova as palavras-chave ASC e DESC da especificação de chave de índice.

Funções definidas pelo usuário e procedimentos armazenados compilados nativamente

A tabela a seguir lista os recursos e as palavras-chave do Transact-SQL que podem aparecer no texto da mensagem de um erro que envolve procedimentos armazenados com compilação nativa e funções definidas pelo usuário, bem como a ação corretiva para resolver o erro.

Tipo Recurso Resolução
Recurso Variáveis de tabela alinhadas Os tipos de tabela não podem ser declarados alinhados com declarações de variável. Os tipos de tabela devem ser declarados explicitamente usando uma instrução CREATE TYPE .
Recurso Cursores Os cursores não têm suporte em procedimentos armazenados nativamente compilados.

Ao executar o procedimento no cliente, use RPC em vez da API do cursor. Com o ODBC, evite a instrução Transact-SQL EXECUTE, em vez de especificar o nome do procedimento diretamente.

Ao executar o procedimento de um lote do Transact-SQL ou outro procedimento armazenado, evite usar um cursor com o procedimento armazenado com compilação nativa.

Ao criar um procedimento armazenado compilado de modo nativo, em vez de usar um cursor, use a lógica baseada em conjunto ou um loop WHILE .
Recurso Padrões de parâmetro não constantes Ao usar valores padrão com parâmetros em procedimentos armazenados nativamente compilados, os valores devem ser constantes. Remova todos os curingas das declarações de parâmetro.
Recurso EXTERNAL Os procedimentos armazenados CLR não podem ser compilados de modo nativo. Remova a cláusula AS EXTERNAL ou a opção NATIVE_COMPILATION da instrução CREATE PROCEDURE.
Recurso Procedimentos armazenados numerados Os procedimentos armazenados nativamente compilados não podem ser numerados. Remova o ;number da instrução CREATE PROCEDURE .
Recurso Várias linhas de instruções INSERT ... VALUES Não é possível inserir várias linhas que usam a mesma instrução INSERT em um procedimento armazenado compilado de modo nativo. Crie instruções INSERT para cada linha.
Recurso CETs (expressões de tabela comum) As CTEs (expressões de tabela comuns) não têm suporte em procedimentos armazenados nativamente compilados. Regravar a consulta.
Recurso COMPUTE Não há suporte para a cláusula COMPUTE . Remova-a da consulta.
Recurso SELECT INTO Não há suporte para a cláusula INTO na instrução SELECT . Reescreva a consulta como INSERT INTO Tabela SELECT.
Recurso lista de colunas de inserção incompleta Em geral, os valores das instruções INSERT devem ser especificados para todas as colunas na tabela.

No entanto, damos suporte a restrições DEFAULT e colunas IDENTITY(1,1) em tabelas com otimização de memória. Essas colunas podem ser (no caso colunas IDENTITY, devem ser) omitidas da lista de colunas INSERT.
Recurso Função Algumas funções internas ainda não têm suporte em procedimentos armazenados nativamente compilados. Remova a função rejeitada do procedimento armazenado. Para obter mais informações sobre funções internas com suporte, veja
Recursos com suporte para módulos T-SQL compilados de modo nativoou
Procedimentos armazenados compilados de modo nativo.
Recurso CASE Aplica-se a: SQL Server 2014 (12.x) e SQL Server starting SQL Server 2016 (13.x)
Não há suporte para expressões CASE em procedimentos armazenados compilados nativamente. Crie consultas para cada caso. Para obter mais informações,veja Implementando uma expressão CASE em um procedimento armazenado compilado de modo nativo.

O banco de Dados SQL do Azure e o SQL Server a partir do SQL Server 2017 (14.x) possuem suporte para expressões CASE.
Recurso INSERT EXECUTE Remova a referência.
Recurso Execute Com suporte somente para executar funções definidas pelo usuário e procedimentos armazenados compilados nativamente.
Recurso agregações definidas pelo usuário As funções de agregação definidas pelo usuário não podem ser usadas em procedimentos armazenados nativamente compilados. Remova a referência à função do procedimento.
Recurso metadados do modo de procura Os procedimentos armazenados nativamente compilados não oferecem suporte aos metadados do modo de procura. Verifique se a opção de sessão NO_BROWSETABLE está definida como OFF.
Recurso DELETE com a cláusula FROM Não há suporte para a cláusula FROM em instruções DELETE com uma fonte de tabela em procedimentos armazenados compilados de modo nativo.

DELETE com a cláusula FROM tem suporte quando ela é usada para indicar a tabela do local em que haverá exclusão.
Recurso UPDATE com a cláusula FROM Não há suporte para a cláusula FROM em instruções UPDATE em procedimentos armazenados compilados de modo nativo.
Recurso procedimentos temporários Os procedimentos armazenados temporários não podem ser compilados nativamente. Crie um procedimento armazenado com compilação nativa permanente ou um procedimento armazenado do Transact-SQL interpretado temporário.
Nível de Isolamento READ UNCOMMITTED O nível de isolamento READ UNCOMMITTED não tem suporte para procedimentos armazenados nativamente compilados. Use um nível de isolamento com suporte, como SNAPSHOT.
Nível de Isolamento READ COMMITTED O nível de isolamento READ COMMITTED não tem suporte para procedimentos armazenados nativamente compilados. Use um nível de isolamento com suporte, como SNAPSHOT.
Recurso tabelas temporárias As tabelas em tempdb não podem ser usadas em procedimentos armazenados nativamente compilados. Em vez disso, use uma variável de tabela ou uma tabela com otimização de memória com DURABILITY=SCHEMA_ONLY.
Recurso DTC As tabelas com otimização de memória e os procedimentos armazenados nativamente compilados não podem ser acessados de transações distribuídas. Em vez disso, use transações SQL.
Recurso EXECUTE WITH RECOMPILE Não há suporte para a opção WITH RECOMPILE em procedimentos armazenados compilados de modo nativo.
Recurso Execução da conexão de administrador dedicada. Os procedimentos armazenados nativamente compilados não podem ser executados da DAC (conexão do administrador dedicado). Use uma conexão normal.
Operação savepoint Os procedimentos armazenados nativamente compilados não podem ser invocados de transações que tenham um ponto de salvamento ativo. Remova o ponto de salvamento da transação.
Operação ALTER AUTHORIZATION Não há suporte para alteração do proprietário de uma tabela com otimização de memória ou procedimentos armazenados nativamente compilados existentes. Descarte e recrie a tabela ou o procedimento para alterar a propriedade.
Operador OPENROWSET Não há suporte para esse operador. Remova OPENROWSET do procedimento armazenado compilado de modo nativo.
Operador OPENQUERY Não há suporte para esse operador. Remova OPENQUERY do procedimento armazenado compilado de modo nativo.
Operador OPENDATASOURCE Não há suporte para esse operador. Remova OPENDATASOURCE do procedimento armazenado compilado de modo nativo.
Operador OPENXML Não há suporte para esse operador. Remova OPENXML do procedimento armazenado compilado de modo nativo.
Operador CONTAINSTABLE Não há suporte para esse operador. Remova CONTAINSTABLE do procedimento armazenado compilado de modo nativo.
Operador FREETEXTTABLE Não há suporte para esse operador. Remova FREETEXTTABLE do procedimento armazenado compilado de modo nativo.
Recurso funções com valor de tabela As funções com valor de tabela não podem ser referenciadas de procedimentos armazenados nativamente compilados. Uma solução possível para essa restrição é adicionar a lógica das funções com valor de tabela ao corpo do procedimento.
Operador CHANGETABLE Não há suporte para esse operador. Remova CHANGETABLE do procedimento armazenado compilado de modo nativo.
Operador GOTO Não há suporte para esse operador. Use outras construções de procedimento, como WHILE.
Operador DESLOCAMENTO Não há suporte para esse operador. Remova OFFSET do procedimento armazenado compilado de modo nativo.
Operador INTERSECT Não há suporte para esse operador. Remova INTERSECT do procedimento armazenado compilado de modo nativo. Em alguns casos, um INNER JOIN pode ser usado para obter o mesmo resultado.
Operador EXCEPT Não há suporte para esse operador. Remova EXCEPT do procedimento armazenado compilado de modo nativo.
Operador APPLY Aplica-se a: SQL Server 2014 (12.x) e SQL Server a partir do SQL Server 2016 (13.x)
Não há suporte para esse operador. Remova APPLY do procedimento armazenado compilado de modo nativo.

O banco de dados SQL do Azure e o SQL Server a partir do SQL Server 2017 (14.x) possuem suporte com o operador APPLY em módulos de compilação nativa.
Operador PIVOT Não há suporte para esse operador. Remova PIVOT do procedimento armazenado compilado de modo nativo.
Operador UNPIVOT Não há suporte para esse operador. Remova UNPIVOT do procedimento armazenado compilado de modo nativo.
Operador CONTAINS Não há suporte para esse operador. Remova CONTAINS do procedimento armazenado compilado de modo nativo.
Operador FREETEXT Não há suporte para esse operador. Remova FREETEXT do procedimento armazenado compilado de modo nativo.
Operador TSEQUAL Não há suporte para esse operador. Remova TSEQUAL do procedimento armazenado compilado de modo nativo.
Operador LIKE Não há suporte para esse operador. Remova LIKE do procedimento armazenado compilado de modo nativo.
Operador NEXT VALUE FOR As sequências não podem referenciadas dentro de procedimentos armazenados nativamente compilados. Obtenha o valor usando o Transact-SQL interpretado e transmita-o ao procedimento armazenado com compilação nativa. Para obter mais informações, veja Implementando IDENTITY em uma tabela com otimização de memória.
Opção Set option As opções SET não podem ser alteradas dentro de procedimentos armazenados nativamente compilados. Algumas opções podem ser definidas com a instrução BEGIN ATOMIC. Para obter mais informações, veja a seção sobre blocos atômicos em Procedimentos armazenados com compilação nativa.
Operando TABLESAMPLE Não há suporte para esse operador. Remova TABLESAMPLE do procedimento armazenado compilado de modo nativo.
Opção RECOMPILE Os procedimentos armazenados nativamente compilados são compilados no tempo de criação. Remova RECOMPILE da definição de procedimento.

Você pode executar sp_recompile em um procedimento armazenado compilado nativamente, o que faz com que ele recompile na próxima execução.
Opção ENCRYPTION Não há suporte para essa opção. Remova ENCRYPTION da definição do procedimento.
Opção FOR REPLICATION Os procedimentos armazenados nativamente compilados não podem ser criados para replicação. Remova FOR REPLICATION da definição do procedimento.
Opção FOR XML Não há suporte para essa opção. Remova FOR XML do procedimento armazenado compilado de modo nativo.
Opção FOR BROWSE Não há suporte para essa opção. Remova FOR BROWSE do procedimento armazenado compilado de modo nativo.
Dica de junção HASH, MERGE Os procedimentos armazenados nativamente compilados oferecem suporte somente a junções de loops aninhados. Não há suporte para junções de hash e mesclagem. Remova a dica de junção.
Dica de consulta Dica de consulta Essa dica de consulta não está dentro de procedimentos armazenados nativamente compilados. Para obter dicas de consulta com suporte, veja Dicas de consulta (Transact-SQL).
Opção PERCENT Essa opção não tem suporte com cláusulas TOP . Remova PERCENT da consulta no procedimento armazenado compilado de modo nativo.
Opção WITH TIES Aplica-se a: SQL Server 2014 (12.x) e SQL Server 2016 (13.x)
Essa opção não tem suporte com cláusulas TOP . Remova WITH TIES da consulta no procedimento armazenado compilado de modo nativo.

O banco de dados SQL do Azure e o SQL Server a partir do SQL Server 2017 (14.x) possuem suporte com TOP WITH TIES.
Função de agregação Função de agregação Não há suporte para todas as funções de agregação. Para obter mais informações sobre as funções de agregação com suporte em módulos T-SQL compilados nativamente, consulte Recursos com suporte em módulos T-SQL compilados nativamente.
Função de classificação Função de classificação As funções de classificação não têm suporte em procedimentos armazenados nativamente compilados. Remova-as da definição de procedimento.
Função Função Não há suporte para essa função. Para obter mais informações sobre as funções com suporte em módulos T-SQL compilados nativamente, consulte Recursos com suporte em módulos T-SQL compilados nativamente.
Instrução Instrução Não há suporte para essa instrução. Para obter mais informações sobre as funções com suporte em módulos T-SQL compilados nativamente, consulte Recursos com suporte em módulos T-SQL compilados nativamente.
Recurso MIN e MAX usados com cadeias de caracteres e binários As funções de agregação MIN e MAX não podem ser usadas para valores de cadeias de caracteres binários e caracteres dentro de procedimentos armazenados compilados de modo nativo.
Recurso GROUP BY ALL ALL não pode ser usado com cláusulas GROUP BY em procedimentos armazenados compilados de modo nativo. Remova ALL da cláusula GROUP BY.
Recurso GROUP BY () Não suporte para o agrupamento por uma lista vazia. Remova a cláusula GROUP BY ou inclua colunas na lista de agrupamentos.
Recurso ROLLUP ROLLUP não pode ser usado com cláusulas GROUP BY em procedimentos armazenados compilados de modo nativo. Remova ROLLUP da definição de procedimento.
Recurso CUBE CUBE não pode ser usado com cláusulas GROUP BY em procedimentos armazenados compilados de modo nativo. Remova CUBE da definição de procedimento.
Recurso GROUPING SETS GROUPING SETS não pode ser usado com cláusulas GROUP BY em procedimentos armazenados compilados de modo nativo. Remova GROUPING SETS da definição do procedimento.
Recurso BEGIN TRANSACTION, COMMIT TRANSACTION e ROLLBACK TRANSACTION Use blocos ATOMIC para controlar transações e tratamento de erros. Para obter mais informações, veja Blocos atômicos.
Recurso Declarações de variável de tabela embutidas. As variáveis de tabela devem referenciar explicitamente os tipos de tabela com otimização de memória definidos. Você deve criar um tipo de tabela com otimização de memória e usar esse tipo para a declaração variável, em vez de especificar o tipo embutido.
Recurso Tabelas baseadas em disco As tabelas baseadas em disco não podem ser acessadas nos procedimentos armazenados compilados de modo nativo. Remova as referências a tabelas baseadas em disco dos procedimentos armazenados com compilação nativa. Ou migre as tabelas baseadas em disco para tabelas com otimização de memória.
Recurso Exibições As exibições não podem ser acessadas nos procedimentos armazenados compilados de modo nativo. Em vez das exibições, referencie as tabelas base subjacentes.
Recurso Funções com valor de tabela Aplica-se a: o banco de Dados SQL do Azure e o SQL Server a partir do SQL Server 2016 (13.x)
Funções com valor de tabela com várias instruções não podem ser acessadas em módulos T-SQL compilados nativamente. Há suporte para funções com valor de tabela embutidas, mas elas devem ser criadas WITH NATIVE_COMPILATION.

Aplica-se a: SQL Server 2014 (12.x)
As funções com valor de tabela não podem ser referenciadas em módulos T-SQL compilados nativamente.
Opção PRINT Remover referência
Recurso DDL Não há suporte para DDL em módulos T-SQL compilados nativamente.
Opção STATISTICS XML Não há suporte. Quando você executa uma consulta com STATISTICS XML habilitado, o conteúdo XML é retornado sem a parte do procedimento armazenado compilado nativamente.

Transações que acessam tabelas com otimização de memória

A tabela a seguir lista os recursos e as palavras-chave do Transact-SQL que podem aparecer no texto da mensagem de um erro que envolve transações que acessam tabelas com otimização de memória, bem como a ação corretiva para resolver o erro.

Tipo Nome Resolução
Recurso savepoint Não há suporte para a criação de pontos de salvamento explícitos em transações que acessam tabelas com otimização de memória.
Recurso transação associada As sessões associadas não podem participar de transações que acessam tabelas com otimização de memória. Não associe a sessão antes de executar o procedimento.
Recurso DTC As transações que acessam tabelas com otimização de memória não podem ser transações distribuídas.

Confira também

Migrando para OLTP na memória