Applies ToSQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Express SQL Server 2008 R2 Datacenter SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Express SQL Server 2008 R2 Express with Advanced Services SQL Server 2008 R2 Standard SQL Server 2008 R2 Workgroup SQL Server 2008 Service Pack 2 SQL Server 2008 Standard

A Microsoft distribui o Microsoft SQL Server 2 (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 atualizações de segurança que foram incluídas com o anterior lançamento da atualização SQL Server 2008 SP2 ou SQL Server 2008 R2.

Sintomas

Considere o seguinte cenário:

  • Cria um servidor ligado num computador que está a executar o Microsoft SQL Server 2008 ou o Microsoft SQL Server 2008 R2. O servidor ligado aponta para uma fonte de dados OLE DB num servidor remoto.

  • Executou uma consulta distribuída que utiliza alguns objetos de dados no servidor ligado.

  • Executa algumas operações num servidor remoto e as operações causam mais de cinco atualizações de versão de esquema nos objetos de dados. Por exemplo, reconstrói o índice de uma tabela no servidor remoto para atualizar a versão de esquema da tabela no servidor ligado.Nota Realizas as operações antes da próxima execução da consulta.

  • Volte a executar a consulta distribuída no servidor ligado.

Neste cenário, a consulta não é recompilada, e você recebe uma mensagem de erro que se assemelha ao seguinte:

Servidor: Msg 7359, Level Level Number, State Number, Line NumberThe OLE DB provider " ProviderName" para servidor ligado " LinkedServer Name" reportou uma alteração na versão de esquema entre o tempo de compilação (" Tempode compilação") e o tempo de execução (" Tempo deexecução") para a tabela "Linked Table Name".

Notas

  • O Nome do Fornecedor é um espaço reservado para o nome do fornecedor OLE DB.

  • Linked Table Name é um espaço reservado para o nome da tabela que é consultado no servidor ligado.

  • As seguintes declarações podem normalmente alterar a versão do esquema:

    • TABELA ALTER

    • CRIAR ÍNDICE

    • ÍNDICE DE QUEDA

    • DBCC REINDEX

Causa

Esta questão ocorre porque se alcança um limite de compensação para consultas. Quando uma alteração é feita ao esquema, alguns objetos na cache são largados e a consulta requer uma operação de recompilação. No entanto, é alcançado um limite máximo para a recompilagem depois de serem feitas mais de cinco alterações que atualizam a versão do esquema. Portanto, o problema que é mencionado na secção "Sintomas" ocorre.

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 11. 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:

2633145 Pacote de atualização cumulativa 11 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 Atualização Cumulativa 4 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:

2633146 Pacote de atualização cumulativo 4 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

Pacote de serviço SQL Server 2008 3

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

2617146 Pacote de atualização cumulativo 1 para SQL Server 2008 Service Pack 3Nota 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 SQL Server 2008. A Microsoft recomenda 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:

2629969 O SQL Server 2008 constrói que foram lançados após o lançamento do SQL Server 2008 Service Pack 3 Os hotfixes do Microsoft SQL Server 2008 são criados para pacotes específicos de serviços sql Server. Tem de aplicar um hotfix SQL Server 2008 Service Pack 3 a uma instalação do SQL Server 2008 Service Pack 3. Por predefinição, qualquer hotfix que seja fornecido num pacote de serviços SQL Server está incluído no próximo pacote de serviços sql Server.

Pacote de atualização cumulativo 6 para SQL Server 2008 SP2

A correção para este problema foi lançada pela primeira vez no pacote de atualização cumulativo 6. Para obter mais informações sobre como obter este pacote de atualização cumulativa para SQL Server 2008 SP2, 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 da atualização contém todos os hotfixes e todas as atualizações de segurança que foram incluídas com o anterior lançamento da atualização SP2 SP2 do SQL Server 2008. Recomendamos que considere aplicar o mais recente lançamento de atualizaçã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 SP2

Solução

Para contornar este problema, utilize um dos métodos seguintes:

  • Executar a declaração DBCC FREEPROCCACHE('Plan_Handle'). Para mais informações sobre o parâmetro Plan_Handle, visite o seguinte site da MSDN:

    Informação geral sobre o parâmetro Plan_Handle

  • Executar o procedimento armazenado sp_refreshView 'ViewName'.Nota Este método não funciona se o pacote de atualização cumulativa 3 para o SQL Server 2008 SP2 for instalado.

Estado

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

Precisa de mais ajuda?

Quer mais opções?

Explore os benefícios da subscrição, navegue em cursos de formação, saiba como proteger o seu dispositivo e muito mais.

As comunidades ajudam-no a colocar e a responder perguntas, a dar feedback e a ouvir especialistas com conhecimentos abrangentes.