FIX: Risultati non corretti quando si esegue un'istruzione INSERT selezionare UNION ALL in SQL Server 2008 o in SQL Server 2008 R2

Traduzione articoli Traduzione articoli
Identificativo articolo: 2530921 - Visualizza i prodotti a cui si riferisce l?articolo.

Microsoft distribuisce correzioni Microsoft SQL Server 2008 Microsoft SQL Server 2008 R2 Service Pack 1 come file scaricabili. Poiché le correzioni sono cumulative, ogni nuova versione contiene tutte le correzioni rapide e rilascio delle correzioni per tutte le correzioni fornite con il precedente SQL Server 2008 Service Pack 1 o SQL Server 2008 R2.
Espandi tutto | Chiudi tutto

In questa pagina

Sintomi

Quando si esegue un INSERISCI UNION SELECT ALL istruzione in SQL Server 2008 o in SQL Server 2008 R2, il risultato dell'istruzione potrebbe essere errato se una tabella di origine del SELEZIONARE clausola viene utilizzata come tabella di destinazione del INSERISCI clausola.

Ad esempio, è necessario eseguire le seguenti istruzioni per creare quattro tabelle:
CREATE TABLE [TabA] (M VARCHAR(20), W VARCHAR(20)) CREATE TABLE [TabB] (M VARCHAR(20), W VARCHAR(20), R VARCHAR(20)) CREATE TABLE [TabC] (P VARCHAR(6), M CHAR(20), A NUMERIC(13)) CREATE TABLE [TabD] (P VARCHAR(6), W VARCHAR(20), M VARCHAR(20), D NUMERIC(13), E DATETIME, F DATETIME)
Inserire alcuni valori nel Scheda, TabB, e TabD tabelle e quindi eseguire le seguenti operazioni INSERISCI UNION SELECT ALL istruzione:

INSERT INTO [TabC] (P, M, A) SELECT T1.P,T1.M,T1.D / SUM(1) OVER(PARTITION BY P) FROM [TabD] T1 INNER JOIN [TabA] T2 ON (T1.M = T2.M AND T1.W = T2.W) WHERE NOT EXISTS (SELECT * FROM [TabC] E1 WHERE T1.P = E1.P) UNION ALL SELECT T1.P,T2.M,T1.D / SUM(1) OVER(PARTITION BY P) FROM [TabD] T1 INNER JOIN [TabB] T2 ON (T1.M = T2.R AND T1.W = T2.W) WHERE NOT EXISTS (SELECT * FROM [TabC] E1 WHERE T1.P = E1.P) GO
In questo scenario, si ricevono risultati non corretti e alcuni record non vengono correttamente inseriti nel TabC tabella.

Risoluzione

Informazioni sull'aggiornamento cumulativo

SQL Server 2008 R2

La correzione di questo problema è stata rilasciata prima nell'aggiornamento cumulativo 9. Per ulteriori informazioni su come ottenere il pacchetto di aggiornamento cumulativo per SQL Server 2008 R2, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
2567713 Pacchetto di aggiornamento cumulativo 9 per SQL Server 2008 R2
Nota Poiché le versioni sono cumulative, ogni nuova versione contiene tutte le correzioni rapide e rilascio delle correzioni per tutte le correzioni fornite con il precedente SQL Server 2008 R2. Si consiglia di considerare applicando la versione più recente contenente tale hotfix. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
981356 SQL Server 2008 R2 versioni rilasciate dopo il rilascio di SQL Server 2008 R2

SQL Server 2008 R2 Service Pack 1

Innanzitutto, la correzione di questo problema è stata rilasciata nell'aggiornamento cumulativo 2 per SQL Server 2008 R2 Service Pack 1. Per ulteriori informazioni su come ottenere il pacchetto di aggiornamento cumulativo, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
2567714 Pacchetto di aggiornamento cumulativo 2 per SQL Server 2008 R2 Service Pack 1
Nota Poiché le versioni sono cumulative, ogni nuova versione contiene tutte le correzioni rapide e rilascio delle correzioni per tutte le correzioni fornite con il precedente SQL Server 2008 R2. Si consiglia di considerare applicando la versione più recente contenente tale hotfix. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
2567616 SQL Server 2008 R2 versioni rilasciate dopo il rilascio di SQL Server 2008 R2 Service Pack 1

SQL Server 2008 Service Pack 2

La correzione di questo problema è stata rilasciata prima 5 aggiornamento cumulativo per SQL Server 2008 Service Pack 2. Per ulteriori informazioni su questo pacchetto di aggiornamento cumulativo, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
2555408 Pacchetto di aggiornamento cumulativo 5 SQL Server 2008 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 fornite con il precedente 2008 SQL Server. Microsoft consiglia di considerare applicando la versione più recente contenente tale hotfix. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
2402659 Il 2008 SQL Server versioni rilasciate dopo il rilascio di SQL Server 2008 Service Pack 2
Gli hotfix Microsoft SQL Server 2008 vengono creati per service pack specifici di SQL Server. È necessario applicare una correzione rapida SQL Server 2008 Service Pack 2 per un'installazione di SQL Server 2008 Service Pack 2. Per impostazione predefinita, qualsiasi hotfix fornito in un service pack SQL Server è incluso nel prossimo service pack di SQL Server.

Aggiornamento il cumulativo di 1 della Pack SQL Server 2008 servizio 14

La correzione di questo problema è stata rilasciata prima nell'aggiornamento cumulativo 14 per SQL Server 2008 Service Pack 1. Per ulteriori informazioni su questo pacchetto di aggiornamento cumulativo, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
2527187 Pacchetto di aggiornamento cumulativo 14 per SQL Server 2008 Service Pack 1
Nota Poiché le versioni sono cumulative, ogni nuova versione contiene tutte le correzioni rapide e rilascio delle correzioni per tutte le correzioni fornite con il precedente 2008 SQL Server. Microsoft consiglia di considerare applicando la versione più recente contenente tale hotfix. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
970365 Il 2008 SQL Server versioni rilasciate dopo il rilascio di SQL Server 2008 Service Pack 1
Microsoft SQL Server 2008 gli hotfix vengono creati per service pack specifici di SQL Server. È necessario applicare una correzione rapida SQL Server 2008 Service Pack 1 per un'installazione di SQL Server 2008 Service Pack 1. Per impostazione predefinita, qualsiasi hotfix fornito in un service pack SQL Server è incluso nel prossimo service pack di SQL Server.

Status

Microsoft ha confermato che si tratta di un problema con i prodotti elencati nella sezione "Si applica a".

Proprietà

Identificativo articolo: 2530921 - Ultima modifica: lunedì 15 agosto 2011 - Revisione: 2.0
Le informazioni in questo articolo si applicano a:
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Enterprise Evaluation
  • Microsoft SQL Server 2008 Express with Advanced Services
  • Microsoft SQL Server 2008 Standard Edition for Small Business
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Express
  • Microsoft SQL Server 2008 R2 Express with Advanced Services
  • Microsoft SQL Server 2008 R2 Standard Edition for Small Business
  • Microsoft SQL Server 2008 R2 Web
  • Microsoft SQL Server 2008 R2 Workgroup
Chiavi: 
kbqfe kbexpertiseadvanced kbsurveynew kbfix kbmt KB2530921 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: 2530921
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