Al momento sei offline in attesa che la connessione Internet venga ristabilita

FIX: I risultati non corretti quando si esegue una query FULL JOIN che utilizza la clausola CROSS APPLY di SQL Server 2008 R2 o in SQL Server 2012

Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 2800797
Microsoft distribuisce le correzioni Microsoft SQL Server 2008 R2 Service Pack 2 (SP2) come un unico file scaricabile. Poiché le correzioni sono cumulative, ogni nuova versione contiene tutte le correzioni rapide e rilascio delle correzioni per tutte le correzioni di protezione fornite con le precedenti SQL Server 2008 R2 Service Pack 2.
Sintomi
È possibile ottenere risultati non corretti quando si esegue una query in Microsoft SQL Server 2008 R2 SP2 o in Microsoft SQL Server 2012 quando sono vere le seguenti condizioni:
  • La query utilizza una clausola CROSS APPLY sul risultato di una clausola JOIN completo .
  • I dati della tabella viene forniti mediante la chiamata di una funzione definita dall'utente con valori di tabella nella clausola JOIN completo .
  • La funzione accetta un nome di colonna come parametro e restituisce i risultati come una tabella.
Ad esempio, si esegue una query simile al seguente:
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. Questo problema si verifica in Microsoft SQL Server 2012.
Risoluzione

Informazioni sull'aggiornamento cumulativo

Aggiornamento cumulativo 7 per SQL Server 2012

La correzione di questo problema è stata rilasciata prima nell'aggiornamento cumulativo 7. Per ulteriori informazioni su come ottenere il pacchetto di aggiornamento cumulativo per SQL Server 2012, fare clic sul seguente numero di articolo per visualizzare l'articolo della Microsoft Knowledge Base:
2823247 Pacchetto di aggiornamento cumulativo 7 per SQL Server 2012
Nota. Poiché le versioni sono cumulative, ogni nuova versione di correzione contiene tutti gli hotfix e rilascio delle correzioni per tutte le correzioni di protezione fornite con il precedente 2012 di SQL Server. Si consiglia di considerare l'applicazione alla versione più recente di correzione contenente tale hotfix. Per ulteriori informazioni, fare clic sul numero dell'articolo riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base:
2692828 Il 2012 di SQL Server versioni rilasciate dopo il rilascio di SQL Server 2012

Aggiornamento cumulativo 3 per SQL Server 2012 SP1

La correzione di questo problema è stata rilasciata prima nell'aggiornamento cumulativo 3. Per ulteriori informazioni su come ottenere il pacchetto di aggiornamento cumulativo per SQL Server 2012 SP1, fare clic sul seguente numero di articolo per visualizzare l'articolo della Microsoft Knowledge Base:
2812412 Pacchetto di aggiornamento cumulativo 3 per SQL Server 2012 Service Pack 1
Nota. Poiché le versioni sono cumulative, ogni nuova versione di correzione contiene tutti gli hotfix e tutte le correzioni di protezione sono stati incluse in SQL Server 2012 SP1 precedente rilascio delle correzioni. Si consiglia di considerare l'applicazione alla versione più recente di correzione contenente tale hotfix. Per ulteriori informazioni, fare clic sul numero dell'articolo riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base:
2772858 Il 2012 di SQL Server versioni rilasciate dopo il rilascio di SQL Server 2012 Service Pack 1

Aggiornamento cumulativo 5 per SQL Server 2008 R2 SP2

La correzione di questo problema è stata rilasciata prima nell'aggiornamento cumulativo 5. Per ulteriori informazioni su come ottenere il pacchetto di aggiornamento cumulativo per SQL Server 2008 R2 Service Pack 2, fare clic sul seguente numero di articolo per visualizzare l'articolo della Microsoft Knowledge Base:
2797460 Pacchetto di aggiornamento cumulativo 5 per SQL Server 2008 R2 Service Pack 2
Nota. Poiché le versioni sono cumulative, ogni nuova versione contiene tutte le correzioni rapide e rilascio delle correzioni per tutte le correzioni di protezione che erano incluse nelle precedenti di SQL Server 2008 R2 Service Pack 2. Si consiglia di considerare l'applicazione alla versione più recente di correzione contenente tale hotfix. Per ulteriori informazioni, fare clic sul numero dell'articolo riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base:
2730301 Versioni di SQL Server 2008 R2 rilasciate dopo il rilascio di SQL Server 2008 R2 Service Pack 2
Status
Microsoft ha confermato che questo è un problema nei prodotti Microsoft elencati nella sezione "Si applica a".
Workaround
Per aggirare questo problema, utilizzare la clausola MERGE JOIN completo invece di una clausola JOIN completo .

Ad esempio, è possibile modificare la query viene menzionata nella sezione "Sintomi" per la query è simile al seguente:
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
Informazioni
Per ulteriori informazioni su come utilizzare la clausola CROSS APPLY , visitare il seguente sito Web Microsoft TechNet:

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 2800797 - Ultima revisione: 04/15/2013 09:13:00 - Revisione: 3.0

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

  • kbqfe kbfix kbsurveynew kbexpertiseadvanced kbmt KB2800797 KbMtit
Feedback
; " src="https://c1.microsoft.com/c.gif?DI=4050&did=1&t=">