DetailPage-MSS-KB

Base de Dados de Conhecimento

ID do artigo: 936223 - Última revisão: terça-feira, 2 de fevereiro de 2010 - Revisão: 2.0

 
Bug nº: 50001186 (Hotfix do SQL)

Nesta página

Sintomas

Considere o cenário a seguir. No Microsoft SQL Server 2005, você cria um servidor vinculado usando o provedor OLE DB do SQL Native Client (SQLNCLI). O servidor vinculado está vinculado a um servidor com o Microsoft SQL Server 2000. Nesse cenário, você recebe as seguintes mensagens de erro ao executar uma consulta contra o servidor vinculado:
Mensagem de erro 1
Msg 8180, nível 16, estado 1, linha 1
Não foi possível preparar o comando (s).
Mensagem de erro 2
Msg 107, nível 16, estado 2, linha 1
O prefixo da coluna ' <column_prefix_name> ' não coincide com um nome de tabela ou nome de alias usado na consulta.


Observação: Esse problema também ocorre no SQL Server 2008. Se você enfrentar esse problema ao se conectar a um servidor do SQL Server 2000 no SQL Server 2008, você deve ativar o sinalizador de traço 4112 para resolver esse problema. Para obter mais informações, consulte a seção "Mais informação".

Causa

Esse problema ocorre porque o SQL Server 2005 gera um plano de execução que tenha uma consulta remota. O SQL Server 2005 deve executar a consulta remota no SQL Server 2000 para recuperar os dados necessários. SQL Server 2000 não pode processar a consulta remota. Portanto, ocorrerá erro 107 no SQL Server 2000. Em seguida, erro 107 é propagado para o SQL Server 2005. Portanto, ocorre erro 107 no SQL Server 2005, e ocorrerá erro 8180 no SQL Server 2005.

Resolução

Informações da atualização cumulativa

A correção para esse problema foi lançada pela primeira vez na atualização cumulativa 2. Para obter mais informações sobre como obter esse pacote de atualizações cumulativas para o SQL Server 2005 Service Pack 2, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
936305  (http://support.microsoft.com/kb/936305/LN/ ) Pacote de atualizações cumulativas 2 para SQL Server 2005 Service Pack 2
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 SQL Server 2005 anteriores corrigir lançamento. A Microsoft recomenda que você considere a aplicação a versão mais recente de correção que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
937137  (http://support.microsoft.com/kb/937137/LN/ ) Compilações do SQL Server 2005 que foram lançadas lançamento após o lançamento do SQL Server 2005 Service Pack 2
Os hotfixes do Microsoft SQL Server 2005 são criados para service packs do SQL Server específicos. Você deve aplicar um hotfix do SQL Server 2005 Service Pack 2 para uma instalação do SQL Server 2005 Service Pack 2. Por padrão, qualquer hotfix fornecidas em um service pack do SQL Server está incluído no próximo service pack do SQL Server.

Como Contornar

Para contornar esse problema, use o Microsoft OLE DB Provider para ODBC para criar o servidor vinculado no SQL Server 2000.

Situação

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

Mais Informações

O pacote de atualização cumulativo (compilação 3175) para o SQL Server 2005 SP2 e o SQL Server 2008 ambos apresentar 4112 sinalizador de rastreamento. Depois de aplicar o pacote de atualização cumulativo (compilação 3175) para SQL Server 2005 SP2, você deve ativar o sinalizador de traço 4112 para resolver esse problema. Para obter informações sobre como habilitar um sinalizador de rastreamento do SQL Server 2005, consulte a seção "Comentários" do site do MSDN (Microsoft Developer Network):
http://msdn2.microsoft.com/en-us/library/ms188396.aspx (http://msdn2.microsoft.com/en-us/library/ms188396.aspx)

Etapas para reproduzir o problema

  1. Inicie o SQL Server Management Studio e conecte-se a uma instância do SQL Server 2005.
  2. Criar uma nova consulta e execute as instruções a seguir.
    EXEC sp_addlinkedserver
    @server = '<LinkedServerName>', 
    @provider = 'SQLNCLI', 
    @srvproduct = '', 
    @datasrc = '<InstanceName>', 
    @catalog = '<DatabaseName>' 
    
    exec sp_serveroption
    @server = '<LinkedServerName>' 
    ,@optname = 'RPC' 
    ,@optvalue = 'TRUE'
    exec sp_serveroption
    @server = '<LinkedServerName>' 
    ,@optname = 'RPC OUT' 
    ,@optvalue = 'TRUE'
    
    
    DECLARE @supervisorID varchar(40)
    set @supervisorID = 'Volume Discount'
    
    SELECT DISTINCT J.STOR_ID
    FROM   [<LinkedServerName>].[<DatabaseName>].DBO.DISCOUNTS J
    WHERE  J.DISCOUNTTYPE = @supervisorID
           AND J.DISCOUNT = (SELECT MAX(B.DISCOUNT)
                             FROM   [<LinkedServerName>].<DatabaseName>.DBO.DISCOUNTS B
                             WHERE  B.DISCOUNTTYPE = J.DISCOUNTTYPE)
    
    GO
    
    Anotações
    • <LinkedServerName>é um espaço reservado para o nome do servidor vinculado.
    • <InstanceName>é um espaço reservado para o nome de instância para o servidor vinculado.
    • <DatabaseName>é um espaço reservado para o nome do banco de dados.
Depois de executar essas instruções, você recebe as mensagens de erro mencionadas na seção "Sintomas".

A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Workgroup
Palavras-chave: 
kbmt kbsql2005engine kbexpertiseadvanced kbfix kbpubtypekc kbqfe KB936223 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 936223  (http://support.microsoft.com/kb/936223/en-us/ )
Compartilhar
Opções de suporte adicionais
Fóruns de Suporte do Microsoft Community
Contate-nos diretamente
Localize um parceiro certificado da Microsoft
Microsoft Store