A Microsoft distribui o Microsoft SQL Server 2005, o Microsoft SQL Server 2008 e 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 SQL Server 2005, Microsoft SQL Server 2008 e SQL Server 2008 R2.A correção descrita neste artigo está disponível para as seguintes versões do SQL Server:
-
Microsoft SQL Server 2005 Service Pack 3 (SP3)
-
Microsoft SQL Server 2005 Service Pack 4 (SP4)
-
Microsoft SQL Server 2008 Service Pack 1 (SP1)
-
Microsoft SQL Server 2008 Service Pack 2 (SP2)
Sintomas
Considere o seguinte cenário:
-
Cria um servidor ligado num computador que está a executar o Microsoft SQL Server 2005, 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.
-
Cria-se um sinónimo para uma tabela no servidor ligado.
-
Cria-se uma função definida pelo utilizador que utiliza o sinónimo ou cria uma visão que utiliza o sinónimo. Em seguida, faça uma consulta contra a função definida pelo utilizador ou a vista.Nota Quando fazes a consulta, um plano de execução está em cache.
-
Executa uma operação num servidor remoto para atualizar a versão de esquema da tabela no servidor ligado. Por exemplo, reconstrói o índice da tabela no servidor remoto para atualizar a versão de esquema da tabela no servidor ligado.
-
Faça outra consulta contra a função definida pelo utilizador ou a vista.
Neste cenário, 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".
Nota Provider Name é um espaço reservado que representa o nome do fornecedor OLE DB. Linked Table Name é um espaço reservado que representa o nome da tabela que está no servidor ligado.
Causa
Esta questão ocorre porque o plano de execução existente não está corretamente esclarecido. Isto faz com que a versão do esquema mude, porque a função definida pelo utilizador ou a vista é recompilada quando a segunda consulta é executada. Portanto, o erro ocorre.
Resolução
Informação de atualização cumulativa
Sql Server 2008 R2 Service Pack 1
A correção para este problema foi lançada pela primeira vez na Cumulativa Update 1 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:
2544793 Pacote de atualização cumulativo 1 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 R2
A correção para este problema foi lançada pela primeira vez na Atualização Cumulativa 7. 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:
2507770 Pacote de atualização cumulativa 7 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
Para SQL Server 2005 SP3
A correção para este problema foi lançada pela primeira vez na Atualização Cumulativa 15. Para obter mais informações sobre como obter este pacote de atualização cumulativa para SQL Server 2005 SP3, clique no seguinte número de artigo para ver o artigo na Base de Conhecimento da Microsoft:
2507766 Pacote de atualização cumulativo 15 para SQL Server 2005 SP3 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 SP3 DO SQL Server 2005. 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:
960598 O SQL Server 2005 constrói que foram lançados após o lançamento do SQL Server 2005 SP3
Para SQL Server 2005 SP4
A correção para este problema foi lançada pela primeira vez na Atualização Cumulativa 3. Para obter mais informações sobre como obter este pacote de atualização cumulativa para SQL Server 2005 SP4, clique no seguinte número de artigo para ver o artigo na Base de Conhecimento da Microsoft:
2507769 Pacote de atualização cumulativo 3 para SQL Server 2005 SP4Nota 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 SP4 do SQL Server 2005. 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:
937137 O SQL Server 2005 constrói que foram lançados após o lançamento do SQL Server 2005 SP4
Para SQL Server 2008 SP1
A correção para este problema foi lançada pela primeira vez na Atualização Cumulativa 13. Para obter mais informações sobre como obter este pacote de atualização cumulativa para SQL Server 2008 SP1, clique no seguinte número de artigo para ver o artigo na Base de Conhecimento da Microsoft:
2497673 Pacote de atualização cumulativo 13 para SQL Server 2008 SP1 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 SP1 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:
970365 O SQL Server 2008 constrói que foram lançados após o lançamento do SQL Server 2008 SP1
Para SQL Server 2008 SP2
A correção para este problema foi lançada pela primeira vez na Atualização Cumulativa 3. 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:
2498535 Pacote de atualização cumulativo 3 para SQL Server 2008 SP2Nota 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 SP2 SP2 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:
2402659 O SQL Server 2008 constrói que foram lançados após o lançamento do SQL Server 2008 SP2
Estado
A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".
Mais Informações
Para obter mais informações sobre como usar o Transact-SQL para criar um sinónimo, visite o seguinte website da Microsoft Developer Network (MSDN):