KORRIGERA: Felaktiga resultat när du kör en fullständig ansluta fråga som använder instruktionen KORSA tillämpas i SQL Server 2008 R2 eller i SQL Server 2012

Artikelöversättning Artikelöversättning
Artikel-id: 2800797 - Visa produkter som artikeln gäller.
Microsoft distribuerar korrigeringar för Microsoft SQL Server 2008 R2 Service Pack 2 (SP2) som en nedladdningsbar fil. Eftersom korrigeringar är kumulativa, varje ny utgåva innehåller alla snabbkorrigeringar och säkerhetskorrigering för alla säkerhetskorrigeringar som ingår i den tidigare SQL Server 2008 R2 Service Pack 2.
Visa alla | Dölj alla

På den här sidan

Symptom

Du kan få felaktiga resultat när du kör en fråga i Microsoft SQL Server 2008 R2 SP2 eller Microsoft SQL Server 2012 när följande villkor är uppfyllda:
  • Frågan använder en KORSA gäller sats över resultatet av en Fullständig JOIN -instruktion.
  • Tabellens data kommer från en tabellvärderade användardefinierade funktionen anropas i FULL JOIN -instruktion.
  • Funktionen accepterar ett kolumnnamn som en parameter och returnerar resultatet som en tabell.
Till exempel köra en fråga som liknar följande:
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 
Obs! Det här problemet uppstår inte i Microsoft SQL Server 2012.

Lösning

Kumulativ uppdateringsinformation

Kumulativ uppdatering 7 för SQLServer 2012

Korrigeringsfil för problemet gavs först ut i den kumulativa uppdateringen 7. Mer information om hur du skaffar den kumulativa uppdateringspaket för SQL Server 2012 klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:
2823247 Samlingsuppdateringen 7 för SQL Server 2012
Obs! Eftersom byggen är kumulativa, varje ny version av korrigeringsfilen innehåller alla snabbkorrigeringar och rätta till alla säkerhetskorrigeringar som ingår i den tidigare SQL Server 2012 release. Vi rekommenderar att du använder den senaste utgåvan av korrigering som innehåller den här snabbkorrigeringen. Om du vill veta mer klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:
2692828 SQL Server 2012 bygger som har getts ut efter SQL Server 2012

Kumulativ uppdatering 3 för SQL Server 2012 SP1

Korrigeringsfil för problemet gavs först ut i kumulativ uppdatering 3. Mer information om hur du skaffar den kumulativa uppdateringspaket för SQL Server 2012 SP1 klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:
2812412 Samlingsuppdateringen 3 för SQL Server 2012 Service Pack 1
Obs! Eftersom byggen är kumulativa, varje ny version av korrigeringsfilen innehåller alla snabbkorrigeringar och alla säkerhetskorrigeringar som ingår i föregående SQL Server 2012 SP1 fix release. Vi rekommenderar att du använder den senaste utgåvan av korrigering som innehåller den här snabbkorrigeringen. Om du vill veta mer klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:
2772858 SQL Server 2012 bygger som har getts ut efter SQL Server 2012 Service Pack 1

Kumulativ uppdatering 5 för SQL Server 2008 R2 SP2

Korrigeringsfil för problemet gavs först ut i den kumulativa uppdateringen 5. Mer information om hur du skaffar den kumulativa uppdateringspaket för SQL Server 2008 R2 SP 2 klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:
2797460 Samlingsuppdateringen 5 för SQL Server 2008 R2 Service Pack 2
Obs! Eftersom byggen är kumulativa, varje ny version av korrigeringsfilen innehåller alla snabbkorrigeringar och säkerhetskorrigering för alla säkerhetskorrigeringar som ingår i den tidigare SQL Server 2008 R2 SP-2. Vi rekommenderar att du använder den senaste utgåvan av korrigering som innehåller den här snabbkorrigeringen. Om du vill veta mer klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:
2730301 SQL Server 2008 R2-versioner som har getts ut efter SQL Server 2008 R2 Service Pack 2

Status

Microsoft har bekräftat att detta är ett problem i Microsoft-produkterna som nämns i avsnittet "Gäller".

Workaround

Undvik det här problemet genom att använda Fullständig koppla JOIN -instruktion i stället för en Fullständig JOIN -instruktion.

Exempelvis kan du ändra frågan som nämns i avsnittet "Symptom" till att frågan av följande slag:
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

Mer Information

Mer information om hur du använder instruktionen KORSA gäller finns på följande Microsoft TechNet-webbplats:
Allmän information om hur du använder instruktionen KORSA tillämpas

Egenskaper

Artikel-id: 2800797 - Senaste granskning: den 15 april 2013 - Revision: 3.0
Informationen i denna artikel gäller:
  • 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
Nyckelord: 
kbqfe kbfix kbsurveynew kbexpertiseadvanced kbmt KB2800797 KbMtsv
Maskinöversatt
VIKTIGT: Denna artikel är översatt av Microsofts automatiska översättningsprogram och inte av en mänsklig översättare. För att Du skall ha åtkomst till alla artiklar i Knowledge Base på Ditt föredragna språk så är en del artiklar översatta av människor och en del artiklar av översättningsprogram. Tänk på att en artikel som är översatt av ett översättningsprogram inte alltid är perfekt. Artikeln kan innehålla fel ord, grammatik eller meningsbyggnad, ungefär som en utländsk talare kan göra misstag när han eller hon pratar med Dig på Ditt språk. Microsoft ansvarar inte för eventuella felaktigheter i översättningen, fel eller skador som orsakats av någon felöversättning av innehållet eller våra kunders användande av det översatta innehållet. Microsoft uppdaterar kontinuerligt mjukvaran för översättningsprogrammet.
Den engelska versionen av artikeln är följande: 2800797

Ge 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