FIX: Onjuiste resultaten wanneer u een volledige JOIN-query uitvoert die gebruikmaakt van de component CROSS APPLY in SQL Server 2008 R2 of in SQL Server 2012

Vertaalde artikelen Vertaalde artikelen
Artikel ID: 2800797 - Bekijk de producten waarop dit artikel van toepassing is.
Microsoft distribueert oplossingen voor Microsoft SQL Server 2008 R2 Service Pack 2 (SP2) als één downloadbaar bestand. Aangezien de oplossingen cumulatief zijn, elke nieuwe release bevat alle hotfixes en alle beveiligingscorrecties die opgenomen in de vorige SQL Server 2008 R2 Service Pack 2 zijn release opgelost.
Alles uitklappen | Alles samenvouwen

Op deze pagina

Symptomen

Er wordt onjuiste resultaten wanneer u een query uitvoert in Microsoft SQL Server 2008 R2 SP2 of Microsoft SQL Server-2012 wanneer de volgende voorwaarden voldaan wordt:
  • De query wordt een CROSS APPLY component over het resultaat van een Volledige JOIN -component gebruikt.
  • De gegevens in een tabel wordt geleverd door een gebruiker gedefinieerde tabelwaardefunctie aanroepen in de Volledige JOIN -component.
  • De functie accepteert de naam van een kolom als een parameter en retourneert de resultaten als een tabel.
Bijvoorbeeld het uitvoeren van een query met de volgende strekking weergegeven:
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 
Opmerking Dit probleem treedt niet op in Microsoft SQL Server-2012.

Oplossing

Cumulatieve update-informatie

Cumulatieve Update 7 voor SQL-Server 2012

De correctie voor dit probleem werd voor het eerst uitgebracht in cumulatieve Update 7. Voor meer informatie over het verkrijgen van dit cumulatieve updatepakket voor SQL Server-2012, klikt u op het volgende artikelnummer in de Microsoft Knowledge Base:
2823247 Cumulatieve updatepakket 7 voor SQL Server-2012
Opmerking Omdat de opbouw cumulatief van opzet zijn, elke nieuwe versie van de correctie bevat alle hotfixes en alle beveiligingscorrecties die opgenomen in de vorige SQL Server 2012 zijn fix release. We raden het toepassen van de meest recente hotfix-versie waarin deze hotfix is opgenomen. Voor meer informatie klikt u op het volgende artikelnummer om het artikel in de Microsoft Knowledge Base te bekijken:
2692828 De versies van SQL Server 2012 die zijn uitgebracht nadat SQL Server 2012 werd gepubliceerd

Cumulatieve Update 3 voor SQL Server 2012 SP1

De correctie voor dit probleem werd voor het eerst uitgebracht in cumulatieve Update 3. Voor meer informatie over het verkrijgen van dit cumulatieve updatepakket voor SQL Server 2012 SP1, klikt u op het volgende artikelnummer in de Microsoft Knowledge Base:
2812412 Cumulatieve updatepakket 3 voor SQL Server 2012 Service Pack 1
Opmerking Omdat de opbouw cumulatief van opzet zijn, elke nieuwe versie van de correctie bevat alle hotfixes en alle beveiligingscorrecties die opgenomen in de vorige SQL Server 2012 SP1 zijn release opgelost. We raden het toepassen van de meest recente hotfix-versie waarin deze hotfix is opgenomen. Voor meer informatie klikt u op het volgende artikelnummer om het artikel in de Microsoft Knowledge Base te bekijken:
2772858 De SQL Server-2012 bouwt die zijn uitgebracht na Service Pack 1 voor SQL Server 2012 is uitgebracht

Cumulatieve Update 5 voor SQL Server 2008 R2 SP2

De correctie voor dit probleem werd voor het eerst uitgebracht in cumulatieve Update 5. Voor meer informatie over het verkrijgen van dit cumulatieve updatepakket voor SQL Server 2008 R2 SP-2 klikt u op het volgende artikelnummer in de Microsoft Knowledge Base:
2797460 Pakket 5 in de cumulatieve update voor SQL Server 2008 R2 Service Pack 2
Opmerking Omdat de opbouw cumulatief van opzet zijn, elke nieuwe versie van de correctie bevat alle hotfixes en de beveiligingscorrecties die opgenomen in de vorige SQL Server 2008 R2 SP 2 zijn release opgelost. We raden het toepassen van de meest recente hotfix-versie waarin deze hotfix is opgenomen. Voor meer informatie klikt u op het volgende artikelnummer om het artikel in de Microsoft Knowledge Base te bekijken:
2730301 SQL Server 2008 R2 maakt die zijn uitgebracht na Service Pack 2 voor SQL Server 2008 R2 is uitgebracht.

Status

Microsoft heeft bevestigd dat dit een probleem is in de Microsoft-producten die worden vermeld in de sectie 'Van toepassing op'.

Workaround

Om dit probleem te omzeilen, gebruikt u de Volledige samenvoegen JOIN -component in plaats van een Volledige JOIN -component.

Bijvoorbeeld, kunt u de query die u in de sectie 'Symptomen' wordt vermeld dat de query is vergelijkbaar met het volgende wijzigen:
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

Meer informatie

Ga naar de volgende Microsoft TechNet-website voor meer informatie over het gebruik van de component CROSS APPLY :
Algemene informatie over het gebruik van de component CROSS APPLY

Eigenschappen

Artikel ID: 2800797 - Laatste beoordeling: maandag 15 april 2013 - Wijziging: 3.0
De informatie in dit artikel is van toepassing op:
  • 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
Trefwoorden: 
kbqfe kbfix kbsurveynew kbexpertiseadvanced kbmt KB2800797 KbMtnl
Automatisch vertaald artikel
BELANGRIJK: Dit artikel is vertaald door de vertaalmachine software van Microsoft in plaats van door een professionele vertaler. Microsoft biedt u professioneel vertaalde artikelen en artikelen vertaald door de vertaalmachine, zodat u toegang heeft tot al onze knowledge base artikelen in uw eigen taal. Artikelen vertaald door de vertaalmachine zijn niet altijd perfect vertaald. Deze artikelen kunnen fouten bevatten in de vocabulaire, zinsopbouw en grammatica en kunnen lijken op hoe een anderstalige de taal spreekt en schrijft. Microsoft is niet verantwoordelijk voor onnauwkeurigheden, fouten en schade ontstaan door een incorrecte vertaling van de content of het gebruik ervan door onze klanten. Microsoft past continue de kwaliteit van de vertaalmachine software aan door deze te updaten.
De Engelstalige versie van dit artikel is de volgende: 2800797

Geef ons feedback

 

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