A Microsoft distribui correções do Microsoft SQL Server 2005, Microsoft SQL Server 2008 e 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 corrigir lançamento.
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
Tenha em conta o seguinte cenário:
Criar um servidor vinculado em um computador que esteja executando o Microsoft SQL Server 2005, Microsoft SQL Server 2008 ou Microsoft SQL Server 2008 R2. O servidor ligado aponta para uma origem de dados OLE DB num servidor remoto.
Criar um sinónimo para uma tabela no servidor ligado.
Cria uma função definida pelo utilizador que utiliza o sinónimo ou cria uma vista que utiliza o sinónimo. Em seguida, execute uma consulta na função definida pelo utilizador ou na vista.
Observação Quando você executa a consulta, um plano de execução é armazenado em cache.
Executar uma operação num servidor remoto para atualizar a versão do esquema da tabela no servidor ligado. Por exemplo, você reconstrói o índice da tabela no servidor remoto para atualizar a versão do esquema da tabela no servidor vinculado.
Executa outra consulta na função definida pelo utilizador ou na vista.
Nesse cenário, você recebe uma mensagem de erro semelhante à seguinte:
Nota
Servidor: Msg 7359, Número do Nível de Nível, Número do Estado do Estado, Número da Linha da Linha
O fornecedor OLE DB "Nome do Fornecedor" para o servidor ligado "Nome do Servidor Ligado" comunicou uma alteração na versão do esquema entre o tempo de compilação ("Tempo de Compilação") e o tempo de execução ("Tempo de Execução") da tabela "Nome da Tabela Ligada".
Observação Nome do provedor é um espaço reservado que representa o nome do provedor OLE DB. O Nome da Tabela Ligada é um marcador de posição que representa o nome da tabela que está no servidor ligado.
Causa
Este problema ocorre porque o plano de execução existente não é limpo corretamente. Isto faz com que a versão do esquema seja alterada porque a função definida pelo utilizador ou a vista é recompilada quando é executada a segunda consulta. Consequentemente, ocorre o erro.
Resolução
Informações de atualização cumulativa
SQL Server 2008 R2 Service Pack 1
A correção para este problema foi lançada pela primeira vez na Atualização Cumulativa 1 para SQL Server 2008 R2 Service Pack 1. Para mais informações sobre como obter este pacote de actualização cumulativa, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:
2544793 Pacote de Atualização Cumulativa 1 para SQL Server 2008 R2 Service Pack 1Nota Como as compilaçõ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 SQL Server 2008 R2 corrigir lançamento. Recomendamos que você considere aplicar o lançamento de correção mais recente que contém esse 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 As compilações do SQL Server 2008 R2 lançadas após o lançamento do SQL Server 2008 R2 Service Pack 1
SQL Server 2008 R2
A correção para esse 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 o SQL Server 2008 R2, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
2507770 pacote de atualização cumulativa 7 para SQL Server 2008 R2 Observação Como as compilaçõ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 SQL Server 2008 R2 corrigir lançamento. Recomendamos que você considere aplicar o lançamento de correção mais recente que contém esse 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 As compilações SQL Server 2008 R2 lançadas após o lançamento do SQL Server 2008 R2
Para o SQL Server 2005 SP3
A correção para este problema foi lançada pela primeira vez na Atualização Cumulativa 15. Para mais informações sobre como obter este pacote de actualização cumulativa para o SQL Server 2005 SP3, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:
2507766 Pacote de atualizações cumulativas 15 para SQL Server 2005 SP3
Observação Como as compilações são cumulativas, cada novo lançamento de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior SQL Server 2005 SP3 corrigir lançamento. Recomendamos que você considere aplicar o lançamento de correção mais recente que contém esse 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 As compilações do SQL Server 2005 lançadas após o lançamento do SQL Server 2005 SP3
Para o 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 esse pacote de atualização cumulativa para o SQL Server 2005 SP4, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
2507769 Pacote de atualizações cumulativas 3 para SQL Server 2005 SP4
Observação Como as compilaçõ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 SQL Server 2005 SP4 corrigir lançamento. Recomendamos que você considere aplicar o lançamento de correção mais recente que contém esse 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 As compilações do SQL Server 2005 lançadas 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 mais informações sobre como obter este pacote de actualização cumulativa para o SQL Server 2008 SP1, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:
2497673 Pacote de atualizações cumulativas 13 para SQL Server 2008 SP1
Observação Como as compilaçõ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 lançamento anterior da correção do SQL Server 2008 SP1. Recomendamos que você considere aplicar o lançamento de correção mais recente que contém esse 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 As compilações do SQL Server 2008 lançadas 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 esse pacote de atualização cumulativa para o SQL Server 2008 SP2, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
2498535 Pacote de atualizações cumulativas 3 para SQL Server 2008 SP2
Observação Como as compilações são cumulativas, cada novo lançamento de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior SQL Server 2008 SP2 corrigir lançamento. Recomendamos que você considere aplicar o lançamento de correção mais recente que contém esse 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 As compilações do SQL Server 2008 lançadas após o lançamento do SQL Server 2008 SP2
Estado
A Microsoft confirmou que se trata de um problema nos produtos Microsoft listados na secção "Aplica-se a".
Mais Informações
Para obter mais informações sobre como usar Transact-SQL para criar um sinônimo, visite o seguinte site da Microsoft Developer Network (MSDN):