Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada SQL do Azure
Tabelas otimizadas para memória, procedimentos armazenados compilados nativamente e funções definidas pelo utilizador não suportam toda a área de superfície Transact-SQL suportada por tabelas baseadas em disco, procedimentos Transact-SQL armazenados interpretados e funções definidas pelo utilizador. Ao tentar usar uma das funcionalidades não suportadas, o servidor devolve um erro.
O texto da mensagem de erro menciona o tipo de instrução Transact-SQL (característica, operação, opção, por exemplo) e bem o nome da característica ou palavra-chave Transact-SQL. A maioria das funcionalidades não suportadas devolverá o erro 10794, com o texto da mensagem de erro a indicar a funcionalidade não suportada. As tabelas seguintes listam as Transact-SQL funcionalidades e palavras-chave que podem aparecer no texto da mensagem de erro, bem como a ação corretiva para resolver o erro.
Para mais informações sobre funcionalidades suportadas com tabelas otimizadas para memória e procedimentos armazenados compilados nativamente, veja:
Problemas de Migração para Procedimentos Armazenados Compilados Nativamente
Funcionalidades SQL Server Não Suportadas para In-Memory OLTP
Bases de Dados que Utilizam In-Memory OLTP
A tabela seguinte lista as Transact-SQL funcionalidades que não são suportadas e as palavras-chave que podem aparecer no texto da mensagem de um erro envolvendo uma base de dados OLTP In-Memory. A tabela também lista a resolução do erro.
| Tipo | Nome | Resolução |
|---|---|---|
| Opção | AUTO_CLOSE | A opção de base de dados AUTO_CLOSE=ON não é suportada em bases de dados que tenham um grupo de ficheiros MEMORY_OPTIMIZED_DATA. |
| Opção | ANEXAR_LOG_DE_RECONSTRUÇÃO | A opção CRIAR BASE DE DADOS ATTACH_REBUILD_LOG não é suportada com bases de dados que tenham um grupo de ficheiros MEMORY_OPTIMIZED_DATA. |
| Característica | INSTANTÂNEO DA BASE DE DADOS | A criação de snapshots de bases de dados não é suportada com bases de dados que tenham um grupo de ficheiros MEMORY_OPTIMIZED_DATA. |
| Característica | Replicação usando o sync_method 'instantâneo de base de dados' ou 'caráter de instantâneo de base de dados' | A replicação usando o sync_method 'snapshot de base de dados' ou 'carácter snapshot de base de dados' não é suportada em bases de dados que tenham um grupo de ficheiros MEMORY_OPTIMIZED_DATA. |
| Característica | DBCC CHECKDB TABELA DE VERIFICAÇÃO DBCC |
O DCCC CHECKDB ignora as tabelas otimizadas para memória na base de dados. O DBCC CHECKTABLE falhará para tabelas otimizadas para memória. |
Tabelas Otimizadas para Memória
A tabela seguinte lista as Transact-SQL funcionalidades que não são suportadas e as palavras-chave que podem aparecer no texto da mensagem de um erro envolvendo uma tabela otimizada para memória. A tabela também lista a resolução do erro.
| Tipo | Nome | Resolução |
|---|---|---|
| Característica | ON | Tabelas otimizadas para memória não podem ser colocadas num grupo de ficheiros ou esquema de partições. Remova a cláusula ON da instrução CREATE TABLE . Todas as tabelas otimizadas para memória são mapeadas para grupos de ficheiros otimizados para memória. |
| Tipo de dados | Nome do tipo de dado | O tipo de dado indicado não é suportado. Substitua o tipo por um dos tipos de dados suportados. Para mais informações, consulte Tipos de Dados Suportados para In-Memory OLTP. |
| Característica | Colunas computadas |
Aplica-se a: SQL Server 2014 (12.x) e SQL Server 2016 (13.x) Colunas computadas não são suportadas em tabelas otimizadas em memória. Remover as colunas calculadas da instrução CREATE TABLE . O Azure SQL Database e o SQL Server a partir do SQL Server 2017 (14.x) suportam colunas computadas em tabelas e índices otimizados para memória. |
| Característica | Replication | A replicação não é suportada com tabelas otimizadas para memória. |
| Característica | FILESTREAM | O armazenamento FILESTREAM não é suportado por colunas de tabelas otimizadas para memória. Remova a palavra-chave FILESTREAM da definição da coluna. |
| Característica | SPARSE | Colunas de tabelas otimizadas para memória não podem ser definidas como SPARSE. Remova a palavra-chave SPARSE da definição da coluna. |
| Característica | ROWGUIDCOL | A opção ROWGUIDCOL não é suportada para colunas de tabelas otimizadas para memória. Remover a palavra-chave ROWGUIDCOL da definição da coluna. |
| Característica | CHAVE ESTRANGEIRA |
Aplica-se a: Azure SQL Database e SQL Server a partir do SQL Server 2016 (13.x) Para tabelas otimizadas para memória, as restrições de CHAVE ESTRANGEIRA são suportadas apenas para chaves estrangeiras que referenciam chaves primárias de outras tabelas otimizadas para memória. Remova a restrição da definição da tabela se a chave estrangeira fizer referência a uma restrição única. No SQL Server 2014 (12.x), as restrições de CHAVE ESTRANHA não são suportadas com tabelas otimizadas para memória. |
| Característica | índice agrupado | Especifique um índice não agrupado. No caso de um índice de chave primária, certifique-se de especificar CHAVE PRIMÁRIA NÃO CLUSTERED. |
| Característica | Transações internas DDL | Tabelas otimizadas para memória e procedimentos armazenados compilados nativamente não podem ser criados ou descartados no contexto de uma transação de utilizador. Não inicie uma transação e certifique-se de que a definição de sessão IMPLICIT_TRANSACTIONS está DESLIGADA antes de executar a instrução CREATE ou DROP. |
| Característica | Gatilhos DDL | Tabelas otimizadas para memória e procedimentos armazenados compilados nativamente não podem ser criados ou eliminados se houver um disparador de servidor ou base de dados para essa operação DDL. Remova os gatilhos do servidor e da base de dados para CREATE/DROP TABLE e CREATE/DROP PROCEDURE. |
| Característica | NOTIFICAÇÃO DE EVENTOS | Tabelas otimizadas para memória e procedimentos armazenados compilados nativamente não podem ser criadas ou descartadas se houver uma notificação de evento de servidor ou base de dados para essa operação DDL. Remover as notificações de eventos do servidor e da base de dados em CREATE TABLE ou DROP TABLE e CREATE PROCEDURE ou DROP PROCEDURE. |
| Característica | FileTable | Tabelas otimizadas para memória não podem ser criadas como tabelas de ficheiros. Remover o argumento AS FileTable da instrução CREATE TABLE |
| Funcionamento | Atualização das colunas principais primárias | As colunas principais de chave em tabelas e tipos de tabelas otimizados para memória não podem ser atualizadas. Se a chave primária precisar de ser atualizada, apague a linha antiga e insira a nova linha com a chave primária atualizada. |
| Funcionamento | CRIAR ÍNDICE | Índices em tabelas otimizadas para memória devem ser especificados em linha com a instrução CREATE TABLE , ou com a instrução ALTER TABLE . |
| Funcionamento | CRIAR ÍNDICE DE TEXTO COMPLETO | Índices de texto completo não são suportados para tabelas otimizadas para memória. |
| Funcionamento | Alteração do esquema | Tabelas otimizadas para memória e procedimentos armazenados compilados nativamente não suportam certas alterações de esquema: Azure SQL Database e SQL Server a partir do SQL Server 2017 (14.x): ALTER TABLE, ALTER PROCEDURE e operações sp_rename são suportadas. Outras alterações de esquema, por exemplo adicionar propriedades estendidas, não são suportadas. SQL Server 2016 (13.x): São suportadas operações ALTER TABLE e ALTER PROCEDURE. Outras alterações de esquema, incluindo sp_rename, não são suportadas. SQL Server 2014 (12.x): alterações de esquema não são suportadas. Para alterar a definição de uma tabela otimizada para memória ou de um procedimento armazenado compilado nativamente, primeiro descarte o objeto e depois recrie-o com a definição desejada. |
| Funcionamento | TRUNCATE TABLE | A operação TRUNCATE não é suportada para tabelas otimizadas para memória. Para remover todas as linhas de uma tabela, apague todas as linhas usando DELETE FROMtabela ou retire e recrie a tabela. |
| Funcionamento | ALTERAR AUTORIZAÇÃO | A alteração do proprietário de uma tabela otimizada para memória existente ou de um procedimento armazenado compilado nativamente não é suportada. Elimina e recria a tabela ou o procedimento para mudar o proprietário. |
| Funcionamento | ALTERAR ESQUEMA | A transferência de uma tabela existente ou de um procedimento armazenado compilado nativamente para outro esquema não é suportada. Coloque e recrie o objeto para transferir entre esquemas. |
| Funcionamento | TABELA DE VERIFICAÇÃO DBCC | Os DBCC CHECKTABLE não são suportados com tabelas otimizadas para memória. Para verificar a integridade dos ficheiros de checkpoint no disco, execute uma cópia de segurança do grupo de ficheiros MEMORY_OPTIMIZED_DATA. |
| Característica | ANSI_PADDING DESATIVADO | A opção de sessão ANSI_PADDING deve estar ATIVA ao criar tabelas otimizadas para 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 compressão de dados não é suportada para tabelas otimizadas para memória. Remove a opção da definição da tabela. |
| Característica | CDT | Tabelas otimizadas para memória e procedimentos armazenados compilados nativamente não podem ser acedidos a partir de transações distribuídas. Usa transações SQL em vez disso. |
| Funcionamento | Tabelas otimizadas para memória como destino do MERGE | Tabelas otimizadas para memória não podem ser o alvo de uma operação MERGE . Use as instruções INSERT,UPDATE e DELETE em vez disso. |
Índices em tabelas otimizadas para memória
A tabela seguinte lista as Transact-SQL funcionalidades e palavras-chave que podem aparecer no texto da mensagem de um erro envolvendo um índice numa tabela otimizada para memória, bem como a ação corretiva para resolver o erro.
| Tipo | Nome | Resolução |
|---|---|---|
| Característica | Índice filtrado | Índices filtrados não são suportados com tabelas otimizadas para memória. Omita a cláusula WHERE da especificação do índice. |
| Característica | Colunas incluídas | Especificar colunas incluídas não é necessário para tabelas otimizadas para memória. Todas as colunas da tabela otimizada para memória estão implicitamente incluídas em todos os índices otimizados para memória. |
| Funcionamento | DROP INDEX | Não é suportada a remoção de índices nas tabelas otimizadas para memória. Pode eliminar índices usando o ALTER TABLE. Para mais informações, consulte Alterar Tabelas Otimizadas para Memória. |
| Opção de índice | Opção de índice | Apenas uma opção de índice é suportada – BUCKET_COUNT para índices HASH. |
Índices de Hash Não Agrupados
A tabela seguinte lista as Transact-SQL funcionalidades e palavras-chave que podem aparecer no texto da mensagem de um erro envolvendo um índice de hash não agrupado, bem como a ação corretiva para resolver o erro.
| Tipo | Nome | Resolução |
|---|---|---|
| Opção | ASC/DESC | Os índices de hash não agrupados não são ordenados. Remover as palavras-chave ASC e DESC da especificação da chave de índice. |
Procedimentos Armazenados Compilados Nativamente e Funções Definidas pelo Usuário Compiladas Nativamente
A tabela seguinte lista as Transact-SQL funcionalidades e palavras-chave que podem aparecer no texto da mensagem de um erro envolvendo procedimentos armazenados compilados nativamente e funções definidas pelo utilizador, bem como a ação corretiva para resolver o erro.
| Tipo | Característica | Resolução |
|---|---|---|
| Característica | Variáveis de tabela em linha | Os tipos de tabela não podem ser declarados em linha com declarações de variáveis. Os tipos de tabela devem ser declarados explicitamente usando uma instrução CREATE TYPE . |
| Característica | Cursors | Os cursores não são suportados em procedimentos armazenados compilados nativamente. Ao executar o procedimento a partir do cliente, use RPC em vez da API do cursor. Com o ODBC, evite a Transact-SQL instrução EXECUTE, especifique diretamente o nome do procedimento. Ao executar o procedimento a partir de um lote Transact-SQL ou outro procedimento armazenado, evite utilizar um cursor com o procedimento armazenado compilado de forma nativa. Ao criar um procedimento armazenado compilado nativamente, em vez de usar um cursor, use lógica baseada em conjuntos ou um ciclo WHILE . |
| Característica | Parâmetros não constantes predefinidos | Ao usar valores predefinidos com parâmetros em procedimentos armazenados compilados nativamente, os valores devem ser constantes. Remova quaisquer curingas das declarações de parâmetros. |
| Característica | EXTERNAL | Os procedimentos armazenados CLR não podem ser compilados nativamente. Ou remova a cláusula AS EXTERNAL ou a opção NATIVE_COMPILATION da instrução CREATE PROCEDURE. |
| Característica | Procedimentos armazenados numerados | Procedimentos armazenados compilados nativamente não podem ser numerados. Remova o ;número da instrução CREATE PROCEDURE . |
| Característica | multi-fila INSERT ... Declarações VALUES | Não é possível inserir várias linhas usando a mesma instrução INSERT num procedimento armazenado compilado nativamente. Crie instruções INSERT para cada linha. |
| Característica | Expressões Comuns de Tabela (CTEs) | Expressões de tabela comuns (CTE) não são suportadas em procedimentos armazenados compilados nativamente. Reescrever a consulta. |
| Característica | COMPUTAÇÃO | A cláusula COMPUTE não é suportada. Remova-o da consulta. |
| Característica | SELECIONE EM | A cláusula INTO não é suportada com a instrução SELECT . Reescreva a consulta como INSERT INTOTableSELECT. |
| Característica | 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, suportamos restrições DEFAULT e colunas IDENTITY(1,1) em tabelas otimizadas para memória. Estas colunas podem ser, e no caso das colunas IDENTITY devem ser, omitidas da lista de colunas INSERT. |
| Característica | Function | Algumas funções incorporadas não são suportadas em procedimentos armazenados compilados nativamente. Remover a função rejeitada do procedimento armazenado. Para mais informações sobre funções incorporadas suportadas, consulte Funcionalidades Suportadas para Módulos T-SQL Compilados Nativamente, ou Procedimentos armazenados compilados nativamente. |
| Característica | CASE |
Aplica-se a: SQL Server 2014 (12.x) e SQL Server a partir do SQL Server 2016 (13.x) Expressões CASE não são suportadas em consultas dentro de procedimentos armazenados compilados nativamente. Crie consultas para cada caso. Para mais informações, veja Implementar uma Expressão CASE num Procedimento Armazenado Compilado Nativamente. O Azure SQL Database e o SQL Server a partir do SQL Server 2017 (14.x) suportam expressões CASE. |
| Característica | INSERIR EXECUTAR | Remova a referência. |
| Característica | EXECUTE | Suportado apenas para executar procedimentos armazenados compilados nativamente e funções definidas pelo utilizador. |
| Característica | Agregados definidos pelo utilizador | Funções agregadas definidas pelo utilizador não podem ser usadas em procedimentos armazenados compilados nativamente. Elimine a referência da função no procedimento. |
| Característica | Metadados do modo de navegação | Os procedimentos armazenados compilados nativamente não suportam metadados do modo de navegação. Certifique-se de que a opção de sessão NO_BROWSETABLE está definida como DESLIGADA. |
| Característica | DELETE com cláusula FROM | A cláusula FROM não é suportada para instruções DELETE com código-fonte de tabela em procedimentos armazenados compilados nativamente. DELETE com a cláusula FROM é suportado quando é usado para indicar a tabela da qual se deve eliminar. |
| Característica | Atualizar com a cláusula FROM | A cláusula FROM não é suportada para instruções UPDATE em procedimentos armazenados compilados nativamente. |
| Característica | Procedimentos temporários | Procedimentos armazenados temporários não podem ser compilados nativamente. Crie um procedimento armazenado compilado nativamente permanente ou um procedimento armazenado interpretado temporário Transact-SQL. |
| Nível de isolamento | LEIA SEM COMPROMISSO | O nível de isolamento READ UNCOMMITTED não é suportado para procedimentos armazenados compilados nativamente. Use um nível de isolamento suportado, como o SNAPSHOT. |
| Nível de isolamento | LER COMPROMETIDO | O nível de isolamento READ COMMITTED não é suportado para procedimentos armazenados compilados nativamente. Use um nível de isolamento suportado, como o SNAPSHOT. |
| Característica | Tabelas temporárias | Tabelas no tempdb não podem ser usadas em procedimentos armazenados compilados nativamente. Em vez disso, use uma variável de tabela ou uma tabela otimizada para memória com DURABILIDADE=SCHEMA_ONLY. |
| Característica | CDT | Tabelas otimizadas para memória e procedimentos armazenados compilados nativamente não podem ser acedidos a partir de transações distribuídas. Usa transações SQL em vez disso. |
| Característica | EXECUTAR COM RECOMPILAÇÃO | A opção WITH RECOMPILE não é suportada para procedimentos armazenados compilados nativamente. |
| Característica | Execução a partir da ligação dedicada do administrador. | Procedimentos armazenados compilados nativamente não podem ser executados a partir da ligação de administrador dedicada (DAC). Use antes uma ligação normal. |
| Funcionamento | Ponto de Salvaguarda | Procedimentos armazenados compilados nativamente não podem ser invocados a partir de transações que tenham um ponto de gravação ativo. Remove o savepoint da transação. |
| Funcionamento | ALTERAR AUTORIZAÇÃO | A alteração do proprietário de uma tabela otimizada para memória existente ou de um procedimento armazenado compilado nativamente não é suportada. Elimina e recria a tabela ou o procedimento para mudar o proprietário. |
| Operator | OPENROWSET | Este operador não é suportado. Remover OPENROWSET do procedimento armazenado compilado nativamente. |
| Operator | OPENQUERY | Este operador não é suportado. Remover OPENQUERY do procedimento armazenado compilado nativamente. |
| Operator | OPENDATASOURCE | Este operador não é suportado. Remover OPENDATASOURCE do procedimento armazenado compilado nativamente. |
| Operator | OPENXML | Este operador não é suportado. Remover OPENXML do procedimento armazenado compilado nativamente. |
| Operator | CONTAINSTABLE | Este operador não é suportado. Remover CONTAINSTABLE do procedimento armazenado compilado nativamente. |
| Operator | FREETEXTTABLE | Este operador não é suportado. Remover FREETEXTTABLE do procedimento armazenado compilado nativamente. |
| Característica | Funções com valores de tabela | Funções com valores de tabela não podem ser referenciadas a partir de procedimentos armazenados compilados nativamente. Uma possível solução alternativa para esta restrição é adicionar a lógica nas funções de valores de tabela ao corpo do procedimento. |
| Operator | CHANGETABLE | Este operador não é suportado. Remover CHANGETABLE do procedimento armazenado compilado nativamente. |
| Operator | GOTO | Este operador não é suportado. Use outros construtos procedurais como WHILE. |
| Operator | COMPENSAÇÃO | Este operador não é suportado. Remover OFFSET do procedimento armazenado nativo compilado. |
| Operator | INTERSECT | Este operador não é suportado. Remover INTERSECT do procedimento armazenado compilado nativamente. Em alguns casos, pode-se usar um INNER JOIN para obter o mesmo resultado. |
| Operator | EXCEPT | Este operador não é suportado. Remover o EXCEPT do procedimento de armazenamento compilado nativamente. |
| Operator | APPLY |
Aplica-se a: SQL Server 2014 (12.x) e SQL Server a partir do SQL Server 2016 (13.x) Este operador não é suportado. Remover APPLY do procedimento armazenado compilado nativamente. O Azure SQL Database e o SQL Server a partir do SQL Server 2017 (14.x) suportam o operador APPLY em módulos compilados nativamente. |
| Operator | PIVOT | Este operador não é suportado. Remover PIVOT do procedimento armazenado compilado nativamente. |
| Operator | DESPIVÔ | Este operador não é suportado. Remover UNPIVOT do procedimento armazenado compilado nativamente. |
| Operator | CONTAINS | Este operador não é suportado. Remover CONTAINS do procedimento armazenado compilado nativamente. |
| Operator | FREETEXT | Este operador não é suportado. Remover FREETEXT do procedimento armazenado compilado nativamente. |
| Operator | TSEQUAL | Este operador não é suportado. Remover TSEQUAL do procedimento armazenado compilado nativamente. |
| Operator | GOSTAR | Este operador não é suportado. Remover LIKE do procedimento armazenado nativamente compilado. |
| Operator | PRÓXIMO VALOR PARA | Sequências não podem ser referenciadas dentro de procedimentos armazenados compilados nativamente. Obtém o valor usando Transact-SQL interpretado e depois passa-o para o procedimento armazenado compilado nativamente. Para mais informações, consulte Implementação de IDENTITY numa Tabela Otimizada por Memória. |
| Definir opção | opção | As opções SET não podem ser alteradas dentro de procedimentos armazenados compilados nativamente. Certas opções podem ser definidas com a instrução BEGIN ATOMIC. Para mais informações, consulte a secção sobre blocos atómicos em Procedimentos Armazenados Compilados Nativamente. |
| Operando | TABLESAMPLE | Este operador não é suportado. Remover TABLESAMPLE do procedimento armazenado compilado nativamente. |
| Opção | RECOMPILE | Os procedimentos armazenados compilados nativamente são compilados no momento da criação. Remover RECOMPILE da definição do procedimento. Pode executar sp_recompile num procedimento armazenado compilado nativamente, o que faz com que recompile na execução seguinte. |
| Opção | ENCRIPTAÇÃO | Esta opção não é suportada. Remover ENCRYPTION da definição do procedimento. |
| Opção | PARA REPLICAÇÃO | Procedimentos armazenados compilados nativamente não podem ser criados para replicação. Removido PARA REPLICAÇÃO da definição do procedimento. |
| Opção | PARA XML | Esta opção não é suportada. Remover FOR XML do procedimento armazenado compilado nativamente. |
| Opção | PARA NAVEGAR | Esta opção não é suportada. Eliminar FOR BROWSE do procedimento armazenado compilado nativamente. |
| Junta-te dica | HASH, MERGE | Os procedimentos armazenados compilados nativamente suportam apenas junções em loops aninhados. O hash e o merge joins não são suportados. Remove a dica de junção. |
| Dica de consulta | Dica de consulta | Esta dica de consulta não está dentro de procedimentos armazenados compilados nativamente. Para dicas de consulta suportadas, veja Dicas de Consulta (Transact-SQL). |
| Opção | PERCENT | Esta opção não é suportada com cláusulas TOP . Remover PERCENT da consulta no procedimento armazenado nativo compilado. |
| Opção | COM EMPATES |
Aplica-se a: SQL Server 2014 (12.x) e SQL Server 2016 (13.x) Esta opção não é suportada com cláusulas TOP . Remover WITH TIES da consulta no procedimento armazenado compilado nativamente. O Azure SQL Database e o SQL Server a partir do SQL Server 2017 (14.x) suportam o TOP WITH TIES. |
| Função de agregação | Função agregada | Nem todas as funções agregadas são suportadas. Para mais informações sobre funções agregadas suportadas em módulos T-SQL compilados nativamente, consulte Funcionalidades Suportadas para Módulos T-SQL Compilados Nativamente. |
| Função de classificação | Função de classificação | As funções de classificação não são suportadas em procedimentos armazenados compilados nativamente. Remova-os da definição do procedimento. |
| Função | Function | Esta função não é suportada. Para mais informações sobre funções suportadas em módulos T-SQL compilados nativamente, consulte Funcionalidades Suportadas para Módulos T-SQL Compilados Nativamente. |
| Statement | Declaração | Esta afirmação não é sustentada. Para mais informações sobre funções suportadas em módulos T-SQL compilados nativamente, consulte Funcionalidades Suportadas para Módulos T-SQL Compilados Nativamente. |
| Característica | MIN e MAX usados com binários e cadeias de caracteres | As funções agregadas MIN e MAX não podem ser usadas para valores de caracteres e cadeias binárias dentro de procedimentos armazenados compilados nativamente. |
| Característica | AGRUPAR POR TODOS | ALL não pode ser usado com cláusulas GROUP BY em procedimentos armazenados compilados nativamente. Remover TODOS da cláusula GROUP BY. |
| Característica | GRUPO POR () | Agrupar por uma lista vazia não é suportado. Ou remove a cláusula GROUP BY, ou inclui colunas na lista de agrupamentos. |
| Característica | configuração agregada | O ROLLUP não pode ser usado com cláusulas GROUP BY em procedimentos armazenados compilados nativamente. Remover ROLLUP da definição do procedimento. |
| Característica | CUBE | O CUBE não pode ser usado com cláusulas GROUP BY em procedimentos armazenados compilados nativamente. Remover CUBE da definição do procedimento. |
| Característica | CONJUNTOS DE AGRUPAMENTO | GROUPING SETS não pode ser usado com cláusulas GROUP BY em procedimentos armazenados compilados nativamente. Remover GROUPING SETS da definição do procedimento. |
| Característica | INICIAR TRANSAÇÃO, COMPROMETER TRANSAÇÃO e REVERTER TRANSAÇÃO | Use blocos ATOMIC para controlar transações e o tratamento de erros. Para mais informações, consulte Blocos Atómicos. |
| Característica | Declarações de variáveis da tabela inline. | As variáveis de tabela devem referenciar tipos de tabela explicitamente definidos e otimizados para memória. Deves criar um tipo de tabela otimizado para memória e usar esse tipo para a declaração da variável, em vez de especificar o tipo inline. |
| Característica | Tabelas baseadas em disco | Tabelas baseadas em disco não podem ser acedidas a partir de procedimentos armazenados compilados nativamente. Remover referências a tabelas baseadas em disco dos procedimentos armazenados compilados nativamente. Ou, migrar a(s) tabela(s) baseada(s) em disco para a memória otimizada. |
| Característica | Views | As vistas não podem ser acedidas a partir de procedimentos armazenados compilados nativamente. Em vez de vistas, refira-se às tabelas base subjacentes. |
| Característica | Funções valoradas em tabelas |
Aplica-se a: Azure SQL Database e SQL Server a partir do SQL Server 2016 (13.x) Funções de tabela com múltiplas instruções não podem ser acedidas a partir de módulos T-SQL compilados nativamente. São suportadas funções de tabela em linha, mas devem ser criadas COM NATIVE_COMPILATION. Aplica-se a: SQL Server 2014 (12.x) Funções com valores de tabela não podem ser referenciadas a partir de módulos T-SQL compilados nativamente. |
| Opção | Remover referência | |
| Característica | DDL | Não é suportado DDL dentro de módulos T-SQL compilados nativamente. |
| Opção | ESTATÍSTICAS XML | Não suportado. Quando executa uma consulta, com o STATISTICS XML ativado, o conteúdo XML é devolvido sem a parte do procedimento armazenado compilado nativamente. |
Transações que Acedem Tabelas Otimizadas para Memória
A tabela seguinte lista as Transact-SQL funcionalidades e palavras-chave que podem aparecer no texto da mensagem de um erro envolvendo transações que acedam a tabelas otimizadas para memória, bem como a ação corretiva para resolver o erro.
| Tipo | Nome | Resolução |
|---|---|---|
| Característica | Ponto de Salvaguarda | Não é suportado criar pontos de gravação explícitos em transações que acedam a tabelas otimizadas para memória. |
| Característica | Transação vinculada | As sessões vinculadas não podem participar em transações que acedam a tabelas otimizadas para memória. Não vincule a sessão antes de executar o procedimento. |
| Característica | CDT | Transações que acedem a tabelas otimizadas para memória não podem ser transações distribuídas. |