DetailPage-MSS-KB

Base de Dados de Conhecimento

Artigo: 936223 - Última revisão: terça-feira, 2 de Fevereiro de 2010 - Revisão: 2.0

 
N.º de bugs: 50001186 (correcção SQL)

Nesta página

Sintomas

Considere o seguinte cenário. Microsoft SQL Server 2005, pode criar um servidor ligado utilizando o fornecedor SQL Native Client OLE DB (SQLNCLI). O servidor ligado está ligado a um servidor com o Microsoft SQL Server 2000 instalado. Neste cenário, recebe as seguintes mensagens de erro quando executa uma consulta o servidor ligado:
Mensagem de erro 1
Msg 8180, nível de 16 de estado 1, linha 1
Não pode ser preparado Statement(s).
Mensagem de erro 2
Msg 107, nível de 16 de estado 2, linha 1
O prefixo da coluna «<column_prefix_name> ' não coincide com um nome de tabela ou alias nome utilizado na consulta.


Nota Este problema também ocorre no SQL Server 2008. Se detectar este problema quando ligar a um servidor de SQL Server 2000 no SQL Server 2008, tem de activar o sinalizador de rastreamento 4112 para resolver este problema. Para mais informações, consulte a secção "Mais informação".

Causa

Este problema ocorre porque o SQL Server 2005 gera um plano de execução que tenha uma consulta remota. SQL Server 2005 deve executar a consulta remota contra o SQL Server 2000 para obter os dados necessários. SQL Server 2000 não consegue processar a consulta remota. Por conseguinte, ocorre o erro 107 no SQL Server 2000. Em seguida, erro 107 é propagado para SQL Server 2005. Por conseguinte, ocorre o erro 107 em SQL Server 2005 e erro 8180 ocorre no SQL Server 2005.

Resolução

Informações sobre a actualização cumulativa

A correcção deste problema primeiro foi disponibilizada em 2 de actualização cumulativa. Para obter mais informações sobre como obter este pacote de actualização cumulativa para o SQL Server 2005 Service Pack 2, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft:
936305  (http://support.microsoft.com/kb/936305/LN/ ) Pacote de actualização cumulativa 2 para o SQL Server 2005 Service Pack 2
Nota Uma vez que as compilações são cumulativas, cada nova versão da correcção contém todas as correcções e todas as correcções de segurança que foram incluídas com o SQL Server 2005 anteriores corrigir lançamento. A Microsoft recomenda que considerem a aplicação pela mais recente versão de correcção que contenha esta correcção. Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft:
937137  (http://support.microsoft.com/kb/937137/LN/ ) Cria o SQL Server 2005 que foram disponibilizadas após o lançamento do SQL Server 2005 Service Pack 2
As correcções Microsoft SQL Server 2005 são criadas para service packs do SQL Server específicos. Tem de aplicar uma correcção SQL Server 2005 Service Pack 2 para uma instalação do SQL Server 2005 Service Pack 2. Por predefinição, qualquer correcção fornecida num service pack do SQL Server está incluída no próximo service pack do SQL Server.

Como contornar

Para contornar este problema, utilize o Microsoft OLE DB Provider para ODBC para criar o servidor ligado contra o SQL Server 2000.

Ponto Da Situação

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

Mais Informação

O pacote de actualização cumulativa (compilação 3175) para o SQL Server 2005 SP2 e o SQL Server 2008 ambos introduzir sinalizador de rastreamento 4112. Depois de aplicar o pacote de actualização cumulativa (compilação 3175) para o SQL Server 2005 SP2, tem de activar o sinalizador de rastreamento 4112 para resolver este problema. Para obter informações sobre como activar um sinalizador de rastreamento no SQL Server 2005, consulte a secção "Observações" do seguinte Web site da MSDN (Microsoft Developer Network):
http://msdn2.microsoft.com/en-us/library/ms188396.aspx (http://msdn2.microsoft.com/en-us/library/ms188396.aspx)

Passos para reproduzir o problema

  1. Inicie o SQL Server Management Studio e, em seguida, ligar a uma instância do SQL Server 2005.
  2. Criar uma nova consulta e, em seguida, execute as seguintes instruções.
    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
    
    Notas
    • <LinkedServerName>é um marcador de posição para o nome do servidor ligado.
    • <InstanceName>é um marcador de posição para o nome de instância para o servidor ligado.
    • <DatabaseName>é um marcador de posição para o nome da base de dados.
Depois de executar estas instruções, recebe as mensagens de erro mencionadas na secção "Sintomas".

A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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/ )
Partilhar
Opções de suporte adicionais
Fóruns de Suporte da Comunidade Microsoft
Contacte-nos directamente
Encontre um parceiro certificado Microsoft
Loja Microsoft