FIX: Rezultate incorecte atunci când executați o interogare se ALĂTURE FULL, care foloseste Crucea aplice clauza în SQL Server 2008 R2 sau în SQL Server 2012

Traduceri articole Traduceri articole
ID articol: 2800797 - View products that this article applies to.
Microsoft distribuie Microsoft SQL Server 2008 R2 pachet Service Pack 2 (SP2) fixat ca un fișier descărcabil. Pentru că remedierile sunt cumulative, fiecare nouă versiune conține toate remedierile rapide și toate remedierile de securitate care au fost incluse cu de anterioare SQL Server 2008 R2 pachet Service Pack 2 fix de presă.
Măriți totul | Reduceți totul

În această pagină

Simptome

Puteți primi rezultate incorecte atunci când executați o interogare în Microsoft SQL Server 2008 R2 SP2 sau în Microsoft SQL Server 2012 atunci când următoarele condiții sunt adevărate:
  • Interogarea utilizează o clauză Crucea aplice peste rezultatul de o clauză JOIN complet .
  • Date de tabel este prevăzută de o tabel definită de utilizator func?ie de asteptare în clauza JOIN complet .
  • Funcția acceptă un nume de coloana ca parametru, și returnează rezultate ca un tabel.
De exemplu, executați o interogare care seamănă cu următorul:
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 
Notă Această problemă nu se produce în Microsoft SQL Server 2012.

Rezoluție

Actualizarea cumulativă informații

Actualizarea cumulativă 7 pentru SQL Server 2012

Fix pentru această problemă a fost primul lansat în 7 actualizare cumulativă. Pentru mai multe informații despre cum se obține acest pachet de actualizare cumulativ pentru SQL Server 2012, faceți clic pe următorul număr de articol pentru a vedea articolul în bază de cunoștințe Microsoft:
2823247 Pachet de actualizare cumulativ 7 pentru SQL Server 2012
Notă Deoarece construiește sunt cumulative, fiecare nouă versiune fixa conține toate remedierile rapide și toate remedierile de securitate care au fost incluse anterior SQL Server 2012 fix de presă. Vă recomandăm să luați în considerare aplicarea cea mai recentă versiune de fix, care conține această remediere rapidă. Pentru mai multe informații, faceți clic pe următorul număr de articol pentru a vedea articolul în bază de cunoștințe Microsoft:
2692828 SQL Server 2012 construiește care au fost eliberați după SQL Server 2012 a fost lansat

Actualizarea cumulativă 3 pentru SQL Server 2012 SP1

Fix pentru această problemă a fost primul lansat în 3 actualizare cumulativă. Pentru mai multe informații despre cum se obține acest pachet de actualizare cumulativ pentru SQL Server 2012 SP1, faceți clic pe următorul număr de articol pentru a vedea articolul în bază de cunoștințe Microsoft:
2812412 Pachet de actualizare cumulativ 3 pentru SQL Server 2012 pachet Service Pack 1
Notă Deoarece construiește sunt cumulative, fiecare nouă versiune fixa conține toate remedierile rapide și toate remedierile de securitate care au fost incluse cu anterioare SQL Server 2012 SP1 fix de presă. Vă recomandăm să luați în considerare aplicarea cea mai recentă versiune de fix, care conține această remediere rapidă. Pentru mai multe informații, faceți clic pe următorul număr de articol pentru a vedea articolul în bază de cunoștințe Microsoft:
2772858 SQL Server 2012 construiește care au fost eliberați după SQL Server 2012 pachet Service Pack 1 a fost lansat

Actualizarea cumulativă 5 pentru SQL Server 2008 R2 SP2

Fix pentru această problemă a fost primul lansat în Cumulative Update 5. Pentru mai multe informații despre cum se obține acest pachet de actualizare cumulativ pentru SQL Server 2008 R2 SP 2, faceți clic pe următorul număr de articol pentru a vedea articolul în bază de cunoștințe Microsoft:
2797460 Pachet de actualizare cumulativ 5 pentru SQL Server 2008 R2 pachet Service Pack 2
Notă Deoarece construiește sunt cumulative, fiecare nouă versiune fixa conține toate remedierile rapide și toate remedierile de securitate care au fost incluse anterior SQL Server 2008 R2 SP 2 fix de presă. Vă recomandăm să luați în considerare aplicarea cea mai recentă versiune de fix, care conține această remediere rapidă. Pentru mai multe informații, faceți clic pe următorul număr de articol pentru a vedea articolul în bază de cunoștințe Microsoft:
2730301 SQL Server 2008 R2 se bazează care au fost eliberați după SQL Server 2008 R2 pachet Service Pack 2 a fost lansat

Stare

Microsoft a confirmat că aceasta este o problemă asociată cu produsele Microsoft enumerate în secțiunea „se aplică la".

Remediere

Pentru a rezolva această problemă, utilizați clauza Complet îmbinare se ALĂTURE în loc de o clauză JOIN complet .

De exemplu, modificați interogarea pe care este menționat în secțiunea "Simptome" pentru că interogarea seamănă cu următorul:
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

Informații suplimentare

Pentru mai multe informații despre cum să utilizați Crucea aplice clauza, du-te la următorul site Web Microsoft TechNet:
Informații generale despre cum să utilizați Crucea aplice clauza

Proprietă?i

ID articol: 2800797 - Ultima examinare: 15 aprilie 2013 - Revizie: 3.0
Se aplică la:
  • 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
Cuvinte cheie: 
kbqfe kbfix kbsurveynew kbexpertiseadvanced kbmt KB2800797 KbMtro
Traducere automată
IMPORTANT: Acest articol a fost tradus de software-ul de traducere automată Microsoft, si nu de un traducător. Microsoft vă oferă atât articole traduse de persoane, cât și articole traduse automat, astfel incat aveti access la toate articolele din Baza noastră de informatii în limba dvs. materna. Totuși, un articol tradus automat nu este întotdeauna perfect. Acesta poate conține greșeli de vocabular, sintaxă sau gramatică, la fel cum un vorbitor străin poate face greșeli vorbind limba dvs. materna. Compania Microsoft nu este responsabilă pentru nici o inexactitate, eroare sau daună cauzată de traducerea necorespunzătoare a conținutului sau de utilizarea traducerii necorespunzătoare de către clienții nostri. De asemenea, Microsoft actualizează frecvent software-ul de traducere automată.
Face?i clic aici pentru a vizualiza versiunea în limba engleză a acestui articol: 2800797

Trimite?i 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