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

Traduzione articoli Traduzione articoli
Identificativo articolo: 2800797 - Visualizza i prodotti a cui si riferisce l?articolo.
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.
Espandi tutto | Chiudi tutto

In questa pagina

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:
Informazioni generali su come utilizzare la clausola CROSS APPLY

Proprietà

Identificativo articolo: 2800797 - Ultima modifica: lunedì 15 aprile 2013 - Revisione: 3.0
Le informazioni in questo articolo si applicano 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
Chiavi: 
kbqfe kbfix kbsurveynew kbexpertiseadvanced kbmt KB2800797 KbMtit
Traduzione automatica articoli
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
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

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