Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
Tabelas com otimização de memória, procedimentos armazenados compilados nativamente e funções definidas pelo usuário não oferecem suporte a todo o conjunto de recursos do Transact-SQL oferecido por tabelas baseadas em disco, procedimentos armazenados interpretados do Transact-SQL 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 compatíveis para tabelas com otimização de memória e procedimentos armazenados compilados nativamente, 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 INSTANTÂNEO | 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) Colunas computadas não são compatíveis com tabelas otimizadas para memória. Remova as colunas computadas da instrução CREATE TABLE. O Banco de Dados SQL do Azure e o SQL Server, a partir do SQL Server 2017 (14.x), dão suporte a colunas computadas em tabelas e índices com otimização de memória. |
| 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 | CHAVE ESTRANGEIRA |
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, certifique-se de especificar 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 verifique se a configuração IMPLICIT_TRANSACTIONS da sessão é OFF antes de executar a instrução CREATE ou DROP. |
| Recurso | Gatilhos DDL | A criação ou exclusão de tabelas com otimização de memória e de procedimentos armazenados compilados nativamente não pode ocorrer se houver um gatilho de servidor ou de banco de dados para essa operação DDL. Remova 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 evento do servidor e do banco de dados em CREATE TABLE ou DROP TABLE ouCREATE PROCEDURE.DROP PROCEDURE |
| Recurso | FileTable | As tabelas com otimização de memória não podem ser criadas como tabelas de arquivo. Remover o argumento AS FileTable da instrução CREATE TABLE |
| Operação | Atualização das 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 | Índices em tabelas otimizadas para memória devem ser definidos inline 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: Banco de Dados SQL do Azure e SQL Server, a partir do SQL Server 2017 (14.x): há suporte para operações ALTER TABLE, ALTER PROCEDURE e sp_rename. Não há suporte para outras alterações de esquema, por exemplo, adição de propriedades estendidas. SQL Server 2016 (13.x): há suporte às operações ALTER TABLE e ALTER PROCEDURE. 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, use DELETE FROMtable para excluir todas as linhas ou exclua 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 DESATIVADO | A opção ANSI_PADDING de sessão deve ser ON ao criar tabelas com otimização de memória ou procedimentos armazenados compilados nativamente. Execute SET ANSI_PADDING ON antes de executar a instrução CREATE. |
| Opção | COMPRESSÃO_DE_DADOS | 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 | Tabelas com otimização de memória não podem ser o destino de uma MERGE operação. Use as instruções INSERT, UPDATE e DELETE em vez disso. |
Í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 remover índices em tabelas otimizadas para 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 embutidas | 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 CREATE TYPE instrução. |
| Recurso | Cursores | Cursores não são suportados em ou dentro de procedimentos armazenados compilados nativamente. 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 a partir de um lote Transact-SQL ou de outro procedimento armazenado, evite usar um cursor com o procedimento armazenado compilado nativamente. Ao criar um procedimento armazenado compilado nativamente, em vez de usar um cursor, use lógica baseada em conjuntos ou um loop WHILE. |
| Recurso | Valores padrão não constantes para parâmetros | Ao usar valores padrão com parâmetros em procedimentos armazenados nativamente compilados, os valores devem ser constantes. Remova todos os caracteres curinga das declarações dos parâmetros. |
| Recurso | EXTERNO | 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. Remover o ;número da instrução CREATE PROCEDURE . |
| Recurso | instruções VALUES de várias linhas INSERT ... | Não é possível inserir várias linhas usando a mesma INSERT instrução em um procedimento armazenado compilado nativamente. Crie INSERT declarações para cada linha. |
| Recurso | CTEs (expressões de tabela comuns) | As CTEs (expressões de tabela comuns) não têm suporte em procedimentos armazenados nativamente compilados. Reescreva a consulta. |
| Recurso | Computação | Não há suporte para a cláusula COMPUTE . Remova-a da consulta. |
| Recurso | SELECIONE EM | Não há suporte para a cláusula INTO na instrução SELECT . Reescreva a consulta como INSERT INTOTableSELECT. |
| Recurso | lista de colunas de inserção incompleta | Em geral, nas instruções INSERT, os valores devem ser especificados para todas as colunas da tabela. No entanto, damos suporte a restrições DEFAULT e colunas IDENTITY(1,1) em tabelas otimizadas para memória. Essas colunas podem ser e, no caso de 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 a partir da versão 2016 (13.x) Expressões CASE não têm suporte em consultas dentro de 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 EXECUTAR | 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 no procedimento. |
| Recurso | metadados do modo de navegação | Os procedimentos armazenados compilados nativamente não oferecem suporte aos metadados do modo de navegação. Verifique se a opção de sessão NO_BROWSETABLE está definida como OFF. |
| Recurso | DELETE com a cláusula FROM | A cláusula FROM não tem suporte em instruções DELETE com uma tabela de origem em procedimentos armazenados compilados nativamente. DELETE com a cláusula FROM tem suporte quando é usado para indicar a tabela da qual os dados serão excluídos. |
| Recurso | UPDATE com a cláusula FROM | A cláusula FROM não tem suporte em instruções UPDATE em procedimentos armazenados compilados nativamente. |
| Recurso | procedimentos temporários | Os procedimentos armazenados temporários não podem ser compilados nativamente. Crie um procedimento armazenado permanente compilado nativamente ou um procedimento armazenado temporário interpretado em Transact-SQL. |
| Nível de Isolamento | LEITURA NÃO CONFIRMADA | O nível de isolamento READ UNCOMMITTED não tem suporte para procedimentos armazenados nativamente compilados. Use um nível de isolamento compatível, como o SNAPSHOT. |
| Nível de Isolamento | LEITURA CONFIRMADA | 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 otimizada para 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 | EXECUTAR COM RECOMPILAÇÃO | Não há suporte para a opção WITH RECOMPILE em procedimentos armazenados compilados de modo nativo. |
| Recurso | Execução a partir da conexão dedicada do administrador. | Os procedimentos armazenados compilados nativamente não podem ser executados por meio da DAC (conexão de administrador dedicada). Use uma conexão normal. |
| Operação | ponto de salvamento | Os procedimentos armazenados nativamente compilados não podem ser invocados de transações que tenham um ponto de salvamento ativo. Remova o savepoint 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 | Aplicar |
Aplica-se a: SQL Server 2014 (12.x) e SQL Server a partir da versão 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 | CONTÉM | 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 | PRÓXIMO VALOR PARA | As sequências não podem ser referenciadas em procedimentos armazenados compilados nativamente. Obtenha o valor usando o Transact-SQL interpretado e transmita-o ao procedimento armazenado com compilação nativa. Para obter mais informações, consulte Implementando IDENTITY em uma tabela otimizada para memória. |
| Definir opção | opção | SET as opções não podem ser alteradas dentro de procedimentos armazenados compilados nativamente. 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 compilados nativamente são compilados no momento da 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 | CRIPTOGRAFIA | Não há suporte para essa opção. Remova ENCRYPTION da definição do procedimento. |
| Opção | PARA REPLICAÇÃO | 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 | PARA NAVEGAR | 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 hash e merge. Remova a dica de junção. |
| Dica de consulta | Dica de consulta | Essa dica de consulta não está em procedimentos armazenados compilados nativamente. Para obter dicas de consulta com suporte, veja Dicas de consulta (Transact-SQL). |
| Opção | PORCENTAGEM | Essa opção não tem suporte com cláusulas TOP . Remova PERCENT da consulta no procedimento armazenado compilado de modo nativo. |
| Opção | COM EMPATES |
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. |
| Declaração | Declaraçã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 cadeias binárias | As funções de agregação MIN e MAX não podem ser usadas para valores de cadeia de caracteres e de cadeia binária em procedimentos armazenados compilados nativamente. |
| Recurso | AGRUPAR POR TODOS | 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 | GRUPO POR () | O agrupamento por uma lista vazia não é compatível. Remova a cláusula GROUP BY ou inclua colunas na lista de agrupamentos. |
| Recurso | Agregação | 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 | CONJUNTOS DE AGRUPAMENTO | 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áveis de tabela em linha. | 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 otimizada para memória e usar esse tipo para a declaração da variável, em vez de especificar o tipo diretamente na declaração. |
| 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 | Visualizações | As exibições não podem ser acessadas por procedimentos armazenados compilados nativamente. Em vez das visões, referencie as tabelas de 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 embutidas com valor de tabela, mas elas devem ser criadas com 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 | Imprimir | 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 referente ao 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 | ponto de salvamento | 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 vinculada | 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. |