KB2542225 - FIX: Falha de afirmação ou outros problemas ocorrem quando executam uma consulta DML contra uma tabela ou vista que tem dois índices no SQL Server 2008 ou no SQL Server 2008 R2

A Microsoft distribui o Microsoft SQL Server 2008 SP2 ou o Microsoft SQL Server 2008 R2 como um ficheiro transferível. Como as correções são cumulativas, cada nova versão contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior lançamento de correção SQL Server 2008 SP2 ou SQL Server 2008 R2.

Sintomas

Considere o seguinte cenário:

  • Tem uma tabela ou uma vista que tem dois índices no Microsoft SQL Server 2008 ou no Microsoft SQL Server 2008 R2. O primeiro índice tem um gatilho AFTER. No entanto, o segundo índice não tem um gatilho AFTER nele.

  • Alguns registos no segundo índice contêm informações de versão para linhas. Por exemplo, já ativou previamente a função de isolamento instantâneo para ativar a versão de linha.

  • Tente fazer uma consulta DML contra a mesa ou contra a vista.

Neste cenário, poderá encontrar uma das seguintes questões:

  • Ocorre uma falha de afirmação e o seguinte erro é registado no registo de erro do SQL Server:

    Dataspid# Erro: 17066, Severidade: 16, Estado: 1.Data Horaespiada# SQL Servidor Afirmação: Arquivo: pageref.cpp, line=1332 Afirmação falhada = '0 == páginaFull'. Este erro pode estar relacionado com o tempo. Se o erro persistir após a reprodução da declaração, utilize o DBCC CHECKDB para verificar se existe integridade estrutural ou reinicie o servidor para garantir que as estruturas de dados na memória não sejam corrompidas.Dataspid# Erro: 3624, Severidade: 20, Estado: 1.Data >spid# Uma verificação de afirmação do sistema falhou. Verifique o registo de erros do SQL Server para obter mais detalhes. Normalmente, uma falha de afirmação é causada por um bug de software ou corrupção de dados. Para verificar se existe corrupção na base de dados, considere executar o DBCC CHECKDB. Se concordar em enviar despejos para a Microsoft durante a configuração, será enviada uma mini lixeira para a Microsoft. Uma atualização pode estar disponível da Microsoft no mais recente Pack de Serviços ou num QFE de Suporte Técnico.

  • A consulta devolve resultados incorretos.

  • Ocorre um problema de corrupção de dados.

Causa

Este problema ocorre devido a um defeito no otimizador de consulta SQL Server. Quando executa uma consulta DML que gere um gatilho, são definidas bandeiras de versão de linha incorretas e o motor de armazenamento SQL Server utiliza as informações da versão antiga da linha. Portanto, os problemas descritos na secção "Sintomas" ocorrem.

Resolução

Informação de atualização cumulativa

SQL Server 2008 R2

A correção para este problema foi lançada pela primeira vez na Atualização Cumulativa 10. Para obter mais informações sobre como obter este pacote de atualização cumulativa para SQL Server 2008 R2, clique no seguinte número de artigo para ver o artigo na Base de Conhecimento da Microsoft:

2591746 Pacote de atualização cumulativa 10 para SQL Server 2008 R2 Nota Como as construções são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior lançamento de correção R2008 do SQL Server 2008. Recomendamos que considere aplicar o mais recente lançamento de correção que contém este hotfix. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:

981356 O SQL Server 2008 R2 constrói que foram lançados após o lançamento do SQL Server 2008 R2

Sql Server 2008 R2 Service Pack 1

A correção para este problema foi lançada pela primeira vez na Cumulativa Update 3 para SQL Server 2008 R2 Service Pack 1. Para obter mais informações sobre como obter este pacote de atualização cumulativa, clique no seguinte número de artigo para ver o artigo na Base de Conhecimento da Microsoft:

2591748 Pacote de atualização cumulativo 3 para SQL Server 2008 R2 Service Pack 1Nota Como as construções são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior lançamento de correção R2008 do SQL Server 2008. Recomendamos que considere aplicar o mais recente lançamento de correção que contém este hotfix. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:

2567616 O SQL Server 2008 R2 constrói que foram lançados após o lançamento do SQL Server 2008 R2 Service Pack 1

Sql Server 2008 Service Pack 2 (SP2) pacote de atualização cumulativa 6

A correção para este problema foi lançada pela primeira vez na Atualização Cumulativa 6. Para obter mais informações sobre como obter este pacote de atualização cumulativa para o SQL Server 2008 Service Pack 2, clique no seguinte número de artigo para ver o artigo na Base de Conhecimento da Microsoft:

2582285 Pacote de atualização cumulativo 6 para SQL Server 2008 Service Pack 2Nota Como as construções são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior lançamento de correção do SQL Server 2008 Service Pack 2. Recomendamos que considere aplicar o mais recente lançamento de correção que contém este hotfix. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:

2402659 O SQL Server 2008 constrói que foram lançados após o lançamento do SQL Server 2008 Service Pack 2

Estado

A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".

Precisa de mais ajuda?

Aumente os seus conhecimentos
Explore as formações
Seja o primeiro a obter novas funcionalidades
Aderir ao Microsoft insiders

As informações foram úteis?

Obrigado pelos seus comentários!

Obrigado pelo seu feedback! Parece que poderá ser benéfico reencaminhá-lo para um dos nossos agentes de suporte do Office.

×