CORRECÇÃO: Resultados incorrectos quando executa uma consulta ADERIR completo que utiliza a cláusula cruzada aplicam-se no SQL Server 2008 R2 ou no SQL Server 2012

Traduções de Artigos Traduções de Artigos
Artigo: 2800797 - Ver produtos para os quais este artigo se aplica.
A Microsoft distribui correcções do Microsoft SQL Server 2008 R2 Service Pack 2 (SP2) como um ficheiro para transferência. Uma vez que as correcções são cumulativas, cada nova versão inclui todas as correcções e correcção de todas as correcções de segurança que foram incluídas com o anterior SQL Server 2008 R2 Service Pack 2.
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Poderá receber resultados incorrectos quando executa uma consulta no Microsoft SQL Server 2008 R2 SP2 ou no Microsoft SQL Server 2012 quando se verificam as seguintes condições:
  • A consulta utiliza uma cláusula Cruzada aplicam-se sobre o resultado de uma cláusula JOIN completo .
  • Os dados da tabela são fornecidos ao chamar uma função definida pelo utilizador tabelares na cláusula JOIN completo .
  • A função aceita um nome de coluna como um parâmetro e devolve os resultados como uma tabela.
Por exemplo, executar uma consulta que é semelhante ao seguinte:
SELECT * FROM tablename 
CROSS APPLY (
    SELECT * FROM
        (SELECT * FROM [dbo].[func_GetTableFromXml](xmlColumn) WHERE nodeParentName = 'New') s1 
    FULL JOIN 
        (SELECT * FROM [dbo].[func_GetTableFromXml](xmlColumn) WHERE nodeParentName = 'Old') s2 
    ON s1.nodeName = s2.nodeName
    ) s 
Nota Este problema não ocorre no Microsoft SQL Server 2012.

Resolução

Informações de actualização cumulativa

Actualização cumulativa 7 para o SQL Server 2012

A correcção deste problema publicada pela primeira vez na actualização cumulativa 7. Para mais informações sobre como obter este pacote de actualização cumulativa para o SQL Server 2012, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
2823247 Pacote de actualização cumulativa 7 para SQL Server 2012
Nota Uma vez que as compilações são cumulativas, cada edição contém todas as correcções e correcção de todas as correcções de segurança que foram incluídas com o anterior servidor de SQL: 2012. Recomendamos que pense em aplicar a edição mais recente da correcção que contenha esta correcção. Para mais informações, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
2692828 O servidor de SQL 2012 cria disponibilizadas após o lançamento do SQL Server 2012

Actualização cumulativa 3 para SQL Server 2012 SP1

A correcção deste problema publicada pela primeira vez na actualização cumulativa 3. Para mais informações sobre como obter este pacote de actualização cumulativa para o SQL Server 2012 SP1, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
2812412 Pacote de actualização cumulativa 3 para SQL Server 2012 Service Pack 1
Nota Uma vez que as compilações são cumulativas, cada edição contém todas as correcções e correcção de todas as correcções de segurança que foram incluídas com o SQL Server 2012 SP1 anterior. Recomendamos que pense em aplicar a edição mais recente da correcção que contenha esta correcção. Para mais informações, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
2772858 O servidor de SQL 2012 cria disponibilizadas após o lançamento do SQL Server 2012 Service Pack 1

Actualização cumulativa 5 para o SQL Server 2008 R2 SP2

A correcção para este problema foi primeiro disponibilizada em 5 de actualização cumulativa. Para mais informações sobre como obter este pacote de actualização cumulativa para o SQL Server 2008 R2 SP 2, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
2797460 Pacote de actualização cumulativa 5 para o SQL Server 2008 R2 Service Pack 2
Nota Uma vez que as compilações são cumulativas, cada edição contém todas as correcções e correcção de todas as correcções de segurança que foram incluídas no anterior SQL Server 2008 R2 SP 2. Recomendamos que pense em aplicar a edição mais recente da correcção que contenha esta correcção. Para mais informações, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
2730301 O SQL Server 2008 R2 cria disponibilizadas após o lançamento do SQL Server 2008 R2 Service Pack 2

Ponto Da Situação

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

Como contornar

Para contornar este problema, utilize a cláusula Intercalar ADERIR completo em vez de uma cláusula JOIN completo .

Por exemplo, alterar a consulta que é mencionada na secção "Sintomas" para que a consulta é semelhante ao seguinte:
SELECT * FROM tablename 
CROSS APPLY (
    SELECT * FROM
        (SELECT * FROM [dbo].[func_GetTableFromXml](xmlColumn) WHERE nodeParentName = 'New') s1 
    FULL MERGE JOIN 
        (SELECT * FROM [dbo].[func_GetTableFromXml](xmlColumn) WHERE nodeParentName = 'Old') s2 
    ON s1.nodeName = s2.nodeName
    ) s

Mais Informação

Para mais informações sobre como utilizar a cláusula Cruzada aplicar , vá para o seguinte Web site Microsoft TechNet:
Informações gerais sobre como utilizar a cláusula cruzada aplicar

Propriedades

Artigo: 2800797 - Última revisão: 15 de abril de 2013 - Revisão: 3.0
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2008 R2 Service Pack 2
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Web
  • Microsoft SQL Server 2008 R2 Workgroup
  • Microsoft SQL Server 2008 R2 Express
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Express
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2012 Web
  • SQL Server 2012 Enterprise Core
Palavras-chave: 
kbqfe kbfix kbsurveynew kbexpertiseadvanced kbmt KB2800797 KbMtpt
Traduçã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: 2800797

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com