Construções do Transact-SQL sem suporte pelo OLTP na memória
Tabelas com otimização de memória e procedimentos armazenados compilados nativamente não dão suporte à área de superfície transact-SQL completa compatível com tabelas baseadas em disco e procedimentos armazenados transact-SQL interpretados. Ao tentar usar um dos recursos sem suporte, o servidor retornará um erro.
O texto da mensagem de erro menciona o tipo de instrução Transact-SQL (recurso, operação, opção, por exemplo) e o nome do recurso ou palavra-chave 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 palavras-chave do Transact-SQL que podem aparecer no texto da mensagem de erro, bem como a ação corretiva para resolve 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 e palavras-chave transact-SQL que podem aparecer no texto da mensagem de um erro envolvendo um banco de dados OLTP In-Memory.
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 e palavras-chave do Transact-SQL que podem aparecer no texto da mensagem de um erro envolvendo uma tabela com otimização de memória, bem como a ação corretiva para resolve 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 . |
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, consulte Tipos de dados com suporte. |
Recurso | Colunas computadas | 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 . |
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 | As restrições FOREIGN KEY não têm suporte para tabelas com otimização de memória. Remova a restrição da definição de tabela. Para obter informações sobre como atenuar a falta de suporte para restrições, consulte Migrando restrições de verificação e de chave estrangeira. |
Recurso | CHECK | As restrições CHECK não têm suporte para tabelas com otimização de memória. Remova a restrição da definição de tabela. Para obter informações sobre como atenuar a falta de suporte para restrições, consulte Migrando restrições de verificação e de chave estrangeira. |
Recurso | UNIQUE | As restrições UNIQUE não têm suporte nas tabelas com otimização de memória. Remova a restrição da definição de tabela. Para obter informações sobre como atenuar a falta de suporte para restrições, consulte Migrando restrições de verificação e de chave estrangeira. |
Recurso | COLUMNSTORE | Os índices COLUMNSTORE não têm suporte com tabelas com otimização de memória. Em vez disso, especifique um índice NONCLUSTERED ou NONCLUSTERED HASH. |
Recurso | índice clusterizado | Especifique um índice não clusterizado. No caso de um índice de chave primária, não deixe de especificar PRIMARY KEY NONCLUSTERED [HASH] . |
Recurso | página de código diferente de 1252 | As colunas em tabelas com otimização de memória com tipos de dados char e varchar devem usar a página de código 1252. Use n(var)char em vez de (var)char ou use uma ordenação com página de código 1252 (por exemplo, Latin1_General_BIN2). Para obter mais informações, consulte Páginas de código de ordenações. |
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 em linha com a instrução CREATE TABLE . Para adicionar um índice a uma tabela com otimização de memória, descarte e recrie a tabela, incluindo a especificação do novo índice. |
Operação | ALTER TABLE | Não há suporte para a alteração das tabelas com otimização de memória. Descarte e recrie a tabela usando a definição da tabela atualizada. |
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 | As tabelas com otimização de memória e os procedimentos armazenados nativamente compilados não oferecem suporte a alterações de esquema, por exemplo, sp_rename .A tentativa de fazer alterações de esquema, como renomear uma tabela, gerará o erro 12320. As operações que exigem alteração na versão do esquema, por exemplo, renomeação, não têm suporte nas tabelas com otimização de memória. Para alterar o esquema, descarte e recrie a tabela ou o procedimento usando uma definição atualizada. |
Operação | CREATE TRIGGER | Não há suporte para gatilhos em tabelas com otimização de memória. |
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 tabela ou descarte 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 alteração do esquema de uma tabela com otimização de memória ou de um procedimento armazenado compilado de modo nativo existente. Remova e recrie a tabela ou o procedimento para alterar o esquema. |
Operação | DBCC CHECKTABLE | Não há suporte para DBCC CHECKTABLE nas tabelas com otimização de memória. |
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 nativamente compilados. 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. |
Recurso | MARS (Vários Conjuntos de Resultados Ativos) | O MARS (Vários Conjuntos de Resultados Ativos) não tem suporte com tabelas com otimização de memória. Esse erro também pode indicar uso de servidor vinculado. O servidor vinculado pode usar MARS. Os servidores vinculados não têm suporte com tabelas com otimização de memória. Conecte-se diretamente ao servidor e ao banco de dados que hospeda as tabelas com otimização de memória. |
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 . Use as instruções INSERT , UPDATE ou DELETE . |
Índices em tabelas com otimização de memória
A tabela a seguir lista os recursos e palavras-chave transact-SQL que podem aparecer no texto da mensagem de um erro envolvendo um índice em uma tabela com otimização de memória, bem como a ação corretiva para resolve 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 | UNIQUE | Não há suporte para índices exclusivos nas tabelas com otimização de memória. Remova o argumento UNIQUE da especificação de índice. |
Recurso | Colunas que permitem valor nulo | Todas as colunas na chave de um índice em uma tabela com otimização de memória devem ser especificadas como NOT NULL . Inclua a restrição NOT NULL com todas as colunas nas chaves de índice. |
Recurso | ordenação non-bin2 | Todas as colunas de caractere na chave de um índice com otimização de memória devem ser declaradas usando uma ordenação BIN2. Use a cláusula COLLATE para definir a ordenação na definição de coluna. Para obter mais informações, consulte Páginas de código de ordenações. |
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 | ALTER INDEX | Não há suporte para a alteração de índices nas tabelas com otimização de memória. Desse modo, descarte a tabela e recrie-a usando a especificação de índice atualizada. |
Operação | DROP INDEX | Não há suporte para o descarte de índices nas tabelas com otimização de memória. Descarte a tabela e recrie-a com os índices desejados. |
Opção de índice | Opção de índice | A opção de índice indicada não tem suporte com índices em tabelas com otimização de memória. Remova a opção da especificação de índice. |
Índices de hash não clusterizados
A tabela a seguir lista os recursos e palavras-chave transact-SQL que podem aparecer no texto da mensagem de um erro envolvendo um índice de hash não clusterizado, bem como a ação corretiva para resolve 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. |
procedimentos armazenados compilados nativamente
A tabela a seguir lista os recursos e palavras-chave do Transact-SQL que podem aparecer no texto da mensagem de um erro envolvendo procedimentos armazenados compilados nativamente, bem como a ação corretiva para resolve o erro.
Type | 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 do cliente, use RPC em vez da API de cursor. Com o ODBC, evite a instrução EXECUTE Transact-SQL , em vez disso, especifique o nome do procedimento diretamente.-Ao executar o procedimento 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 uma lógica baseada em conjunto ou um WHILE loop. |
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 ; número da instrução CREATE PROCEDURE . |
Recurso | INSERT de várias linhas... Instruções VALUES | Não é possível inserir várias linhas que usam a mesma instrução INSERT em um procedimento armazenado nativamente compilado. 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 | subconsulta | Não há suporte para subconsultas (consultas aninhadas dentro de outra consulta). Regravar a consulta. |
Recurso | COMPUTE | Não há suporte para a cláusula COMPUTE . Remova-a da consulta. |
Recurso | SELECT INTO | A cláusula INTO não tem suporte com a instrução SELECT . Reescreva a consulta como INSERT INTO TabelaSELECT . |
Recurso | OUTPUT | Não há suporte para a cláusula OUTPUT . Remova-a da consulta. |
Recurso | lista de colunas de inserção incompleta | Em instruções INSERT , os valores devem ser especificados para todas as colunas na tabela. |
Função | Função | A função interna não tem suporte em procedimentos armazenados nativamente compilados. Remova a função do procedimento armazenado. Para obter mais informações sobre funções internas com suporte, consulte Procedimentos armazenados compilados nativamente. |
Recurso | CASE | A instrução CASE não tem suporte em consultas dentro de procedimentos armazenados nativamente compilados. Crie consultas para cada caso. Para obter mais informações, consulte Implementando uma instrução CASE. |
Recurso | funções definidas pelo usuário | As funções definidas pelo usuário não podem ser usadas em procedimentos armazenados nativamente compilados. Remova a referência à função da definição de procedimento. |
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 | A cláusula FROM não tem suporte para as 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 de onde haverá exclusão. |
Recurso | UPDATE com a cláusula FROM | A cláusula FROM não tem suporte para as instruções UPDATE em procedimentos armazenados nativamente compilados. |
Recurso | procedimentos temporários | Os procedimentos armazenados temporários não podem ser compilados nativamente. Crie um procedimento armazenado compilado nativamente permanente ou um procedimento armazenado Transact-SQL interpretado temporariamente. |
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 UNCOMMITTED 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 | MARS | O MARS (Vários Conjuntos de Resultados Ativos) não tem suporte com procedimentos armazenados nativamente compilados. Esse erro também pode indicar uso de servidor vinculado. O servidor vinculado pode usar MARS. Servidores vinculados não têm suporte com procedimentos armazenados nativamente compilados. Conecte-se diretamente ao servidor e ao banco de dados que hospeda os procedimentos armazenados nativamente compilados. |
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 | ordenação non-bin2 | As operações de comparação, classificação, entre outras, em cadeias de caracteres em procedimentos armazenados nativamente compilados exigem o uso de uma ordenação BIN2. Use a cláusula COLLATE ou colunas e variáveis com uma ordenação adequada. Para obter mais informações, consulte Páginas de código de ordenações. |
Recurso | Truncamento de cadeias de caracteres com uma ordenação SC. | As cadeias de caracteres com uma ordenação _SC usam a codificação UTF-16. A conversão de um valor n(var)char em um valor n(var)char com um comprimento curto envolve truncamento. Isso não tem suporte para valores UTF-16 em procedimentos armazenados nativamente compilados. Evite o truncamento de cadeias de caracteres UTF-16. |
Recurso | EXECUTE WITH RECOMPILE | A opção WITH RECOMPILE não tem suporte para procedimentos armazenados nativamente compilados. |
Recurso | LEN e SUBSTRING com um argumento em uma ordenação SC | As cadeias de caracteres com uma ordenação _SC usam a codificação UTF-16. As funções internas LEN e SUBSTRING, quando usadas nos procedimentos armazenados compilados de modo nativo, não oferecem suporte à codificação UTF-16. Use uma ordenação diferente ou evite usar essas funções. |
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 | ALTER PROCEDURE | Os procedimentos armazenados nativamente compilados não podem ser alterados. Para alterar a definição do procedimento, descarte e recrie o procedimento armazenado. |
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 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 nativamente compilado. |
Operador | OPENQUERY | Não há suporte para esse operador. Remova OPENQUERY do procedimento armazenado nativamente compilado. |
Operador | OPENDATASOURCE | Não há suporte para esse operador. Remova OPENDATASOURCE do procedimento armazenado nativamente compilado. |
Operador | OPENXML | Não há suporte para esse operador. Remova OPENXML do procedimento armazenado nativamente compilado. |
Operador | CONTAINSTABLE | Não há suporte para esse operador. Remova CONTAINSTABLE do procedimento armazenado nativamente compilado. |
Operador | FREETEXTTABLE | Não há suporte para esse operador. Remova FREETEXTTABLE do procedimento armazenado nativamente compilado. |
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 nativamente compilado. |
Operador | GOTO | Não há suporte para esse operador. Use outras construções de procedimento, como WHILE. |
Operador | EXECUTE, INSERT EXEC | Não há suporte para o aninhamento de procedimentos armazenados nativamente compilados. As operações necessárias podem ser especificadas em linha, como parte da definição do procedimento armazenado. |
Operador | OFFSET | Não há suporte para esse operador. Remova OFFSET do procedimento armazenado nativamente compilado. |
Operador | UNION | Não há suporte para esse operador. Remova UNION do procedimento armazenado nativamente compilado. A combinação de vários conjuntos de resultados em um único conjunto de resultados pode ser feita usando uma variável de tabela. |
Operador | INTERSECT | Não há suporte para esse operador. Remova INTERSECT do procedimento armazenado nativamente compilado. 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 nativamente compilado. |
Operador | OUTER JOIN | Não há suporte para esse operador. Remova OUTER JOIN do procedimento armazenado nativamente compilado. Para obter mais informações, consulte Implementando uma junção externa. |
Operador | APPLY | Não há suporte para esse operador. Remova APPLY do procedimento armazenado nativamente compilado. |
Operador | PIVOT | Não há suporte para esse operador. Remova PIVOT do procedimento armazenado nativamente compilado. |
Operador | UNPIVOT | Não há suporte para esse operador. Remova UNPIVOT do procedimento armazenado nativamente compilado. |
Operador | OR, IN | A disjunção (OR, IN) não tem suporte na cláusula WHERE das consultas em procedimentos armazenados compilados de modo nativo. Crie consultas para cada um dos casos. |
Operador | CONTAINS | Não há suporte para esse operador. Remova CONTAINS do procedimento armazenado nativamente compilado. |
Operador | FREETEXT | Não há suporte para esse operador. Remova FREETEXT do procedimento armazenado nativamente compilado. |
Operador | NOT | Não há suporte para esse operador. Remova NOT do procedimento armazenado nativamente compilado. Em alguns casos, NOT pode ser substituído por desigualdade. Por exemplo, NOT a=b pode ser substituído por a!=b . |
Operador | TSEQUAL | Não há suporte para esse operador. Remova TSEQUAL do procedimento armazenado nativamente compilado. |
Operador | LIKE | Não há suporte para esse operador. Remova LIKE do procedimento armazenado nativamente compilado. |
Operador | NEXT VALUE FOR | As sequências não podem referenciadas dentro de procedimentos armazenados nativamente compilados. Obtenha o valor usando Transact-SQL interpretado e, em seguida, passe-o para o procedimento armazenado compilado nativamente. Para obter mais informações, veja Implementando IDENTITY em uma tabela com otimização de memória. |
Opção Set | opção | 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, confira a seção sobre blocos atômicos em Procedimentos armazenados compilados de modo nativo. |
Operando | TABLESAMPLE | Não há suporte para esse operador. Remova TABLESAMPLE do procedimento armazenado nativamente compilado. |
Opção | RECOMPILE | Os procedimentos armazenados nativamente compilados são compilados no tempo de criação. Para recompilar um procedimento armazenado nativamente compilado, descarte-o e recrie-o. Remova RECOMPILE da definição do procedimento. |
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 de procedimento. |
Opção | FOR XML | Não há suporte para essa opção. Remova FOR XML do procedimento armazenado nativamente compilado. |
Opção | FOR BROWSE | Não há suporte para essa opção. Remova FOR BROWSE do procedimento armazenado nativamente compilado. |
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, consulte Dicas de consulta (Transact-SQL). |
Opção | DISTINTO | Não há suporte para essa opção. Remova DISTINCT da consulta no procedimento armazenado nativamente compilado. |
Opção | PERCENT | Essa opção não tem suporte com cláusulas TOP . Remova PERCENT da consulta no procedimento armazenado nativamente compilado. |
Opção | WITH TIES | Essa opção não tem suporte com cláusulas TOP . Remova WITH TIES da consulta no procedimento armazenado nativamente compilado. |
Função de agregação | Função de agregação | Não há suporte para essa cláusula. Para obter mais informações sobre procedimentos armazenados compilados de modo nativo, veja Procedimentos armazenados compilados de modo nativo. |
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. Remova-a do procedimento armazenado nativamente compilado. |
de | Instrução | Não há suporte para essa instrução. Remova-a do procedimento armazenado nativamente compilado. |
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 nativamente compilados. |
Recurso | GROUP BY sem função de agregação | Em procedimentos armazenados compilados de modo nativo, quando uma consulta tem uma cláusula GROUP BY , a consulta também deve usar uma função de agregação na cláusula SELECT ou HAVING. Adicione uma função de agregação à consulta. |
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 nativamente compilados. Remova ROLLUP da definição do procedimento. |
Recurso | CUBE | CUBE não pode ser usado com cláusulas GROUP BY em procedimentos armazenados nativamente compilados. Remova CUBE da definição do procedimento. |
Recurso | GROUPING SETS | GROUPING SETS não pode ser usado com cláusulas GROUP BY em procedimentos armazenados nativamente compilados. 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 | sp_recompile | Não há suporte para a recompilação de procedimentos armazenados compilados de modo nativo. Remova e recrie o procedimento. |
Recurso | EXECUTE AS CALLER | A cláusula EXECUTE AS é necessária. Mas, não há suporte para EXECUTE AS CALLER . Use EXECUTE AS OWNER , EXECUTE AS usuário ou EXECUTE AS SELF . |
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 compilados de modo nativo. 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 | As funções com valor de tabela não podem ser acessadas nos procedimentos armazenados compilados de modo nativo. Remova as referências a funções com valor de tabela do procedimento armazenado compilado de modo nativo. |
Transações que acessam tabelas com otimização de memória
A tabela a seguir lista os recursos e palavras-chave do Transact-SQL que podem aparecer no texto da mensagem de um erro envolvendo transações que acessam tabelas com otimização de memória, bem como a ação corretiva para resolve 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 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. |