KB2498818 - CORREÇÃO: Erro 7359 quando você executa uma consulta em uma função definida pelo usuário ou um modo de exibição que usa um sinônimo em um servidor vinculado no SQL Server 2005, SQL Server 2008 ou SQL Server 2008 R2

Aplica-se A
Microsoft SQL Server 2005 Service Pack 3 Microsoft SQL Server 2005 Service Pack 4 SQL Server 2008 Service Pack 2 Microsoft SQL Server 2005 SQL Server 2008 SQL Server 2008 R2

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):

Como usar o Transact-SQL para criar um sinônimo