Sintomas
Assuma que tem uma base de dados que leu o Isolamento Instantâneo Comprometido (RCSI) ativado pela definição de opção READ_COMMITTED_SNAPSHOT no Microsoft SQL Server 2014. Quando acede a uma tabela otimizada pela memória e a uma variável de tabela otimizada pela memória na mesma declaração fora do contexto de uma transação de utilizador, a operação pode falhar. Além disso, poderá receber o seguinte erro:
Msg 41359. Uma consulta que acede a tabelas otimizadas de memória utilizando o nível de isolamento READ COMMITTED, não pode aceder a tabelas baseadas em discos quando a opção de base de dados READ_COMMITTED_SNAPSHOT está definida para ON. Forneça um nível de isolamento suportado para a tabela otimizada da memória utilizando uma sugestão de tabela, como WITH (SNAPSHOT).
Resolução
O problema foi corrigido pela primeira vez na seguinte atualização cumulativa do SQL Server.
Atualização Cumulativa 1 para SQL Server 2014 /en-us/help/2931693
Cada nova atualização cumulativa do SQL Server contém todos os hotfixes e todas as correções de segurança que foram incluídas com a atualização cumulativa anterior. Confira as últimas atualizações cumulativas do SQL Server:
Solução
Para contornar a questão, utilize as seguintes soluções alternativas:
-
Utilize a sugestão de tabela COM (SNAPSHOT) com a variável de tabela.
-
Desa estada a opção de base de dados MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT para ON.
Estado
A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".