Update: Falsche Ergebnisse, wenn Sie wählen UNION-ALL INSERT-Anweisung in SQL Server 2008 oder SQL Server 2008 R2 ausführen

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 2530921 - Produkte anzeigen, auf die sich dieser Artikel bezieht

Microsoft stellt Updates für Microsoft SQL Server 2008 Microsoft SQL Server 2008 R2 Service Pack 1 als downloadbare Datei. Da die Updates kumulativ sind, enthält jede neue Version alle Hotfixes und alle die Sicherheitsupdates, die mit der vorherigen SQL Server 2008 Service Pack 1 oder SQL Server 2008 R2 enthalten waren.
Alles erweitern | Alles schließen

Auf dieser Seite

Problembeschreibung

Beim Ausführen einer INSERT SELECT UNION ALL Anweisung in SQL Server 2008 oder SQL Server 2008 R2, ist das Ergebnis der Anweisung möglicherweise falsch, wenn eine Quelltabelle die WÄHLEN SIE -Klausel wird verwendet, wie die Zieltabelle der EINFÜGEN -Klausel.

Beispielsweise führen Sie die folgenden Anweisungen zum Erstellen von vier Tabellen:
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)
Fügen Sie einige Werte in der TabA, TabB, und TabD Tabellen, und dann führen Sie den folgenden INSERT SELECT UNION ALL Anweisung:

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 diesem Szenario erhalten Sie falsche Ergebnisse, und einige Datensätze fälschlicherweise nicht in der TabC Tabelle.

Lösung

Kumulatives Update-Informationen

SQL Server 2008 R2

Die Fehlerbehebung für dieses Problem wurde zuerst im kumulativen Update 9 veröffentlicht. Weitere Informationen dazu, wie Sie dieses kumulative Updatepaket für SQL Server 2008 R2 erhalten finden Sie in folgendem Artikel der Microsoft Knowledge Base anzuzeigen:
2567713 Kumulatives Updatepaket 9 SQL Server 2008 R2
Hinweis Da die Builds kumulativ sind, jede neue Version enthält alle Hotfixes und alle die Sicherheitsupdates, die mit dem vorherigen SQL Server 2008 R2 enthalten waren. Wir empfehlen, dass Sie sich die neueste Version von Fix, die diesen Hotfix enthält. Weitere Informationen finden Sie in folgendem Artikel der Microsoft Knowledge Base anzuzeigen:
981356 Die SQL Server 2008 R2 builds, die nach der Freigabe SQL Server 2008 R2

SQL Server 2008 R2 Servicepack 1

Die Fehlerbehebung für dieses Problem wurde zuerst im kumulativen Update 2 für SQL Server 2008 R2 Service Pack 1 veröffentlicht. Weitere Informationen dazu, wie Sie dieses kumulative Updatepaket beziehen finden Sie in folgendem Artikel der Microsoft Knowledge Base anzuzeigen:
2567714 Kumulative Updatepaket 2 für SQL Server 2008 R2 Service Pack 1
Hinweis Da die Builds kumulativ sind, jede neue Version enthält alle Hotfixes und alle die Sicherheitsupdates, die mit dem vorherigen SQL Server 2008 R2 enthalten waren. Wir empfehlen, dass Sie sich die neueste Version von Fix, die diesen Hotfix enthält. Weitere Informationen finden Sie in folgendem Artikel der Microsoft Knowledge Base anzuzeigen:
2567616 Die SQL Server 2008 R2 erstellt, die nach der Freigabe SQL Server 2008 R2 Service Pack 1 veröffentlicht wurden

SQL Server 2008 Servicepack 2

Die Fehlerbehebung für dieses Problem wurde zuerst im kumulativen Update 5 für SQL Server 2008 Service Pack 2 veröffentlicht. Weitere Informationen über dieses kumulative Updatepaket finden Sie in folgendem Artikel der Microsoft Knowledge Base anzuzeigen:
2555408 Kumulatives Updatepaket 5 für SQL Server 2008 Service Pack 2
Hinweis Da die Builds kumulativ sind, jede neue Version enthält alle Hotfixes und alle die Sicherheitsupdates, die mit der vorherigen SQL Server 2008 geliefert wurden. Microsoft empfiehlt, dass Sie sich die neueste Version von Fix, die diesen Hotfix enthält. Weitere Informationen finden Sie in folgendem Artikel der Microsoft Knowledge Base anzuzeigen:
2402659 Die SQL Server 2008 erstellt, die nach der Freigabe SQL Server 2008 Service Pack 2 veröffentlicht wurden
Microsoft SQL Server-2008-Hotfixes sind für bestimmte SQL Server Servicepacks erstellt. Sie müssen einen SQL Server 2008 Service Pack 2-Hotfix auf eine Installation von SQL Server 2008 Service Pack 2 anwenden. Standardmäßig ist jeder Hotfix, der in einem SQL Server Servicepack bereitgestellt wird in der nächsten SQL Server Servicepack enthalten.

SQL Server 2008 Service Pack 1 kumulative Update 14

Die Fehlerbehebung für dieses Problem wurde zuerst im kumulativen Update 14 für SQL Server 2008 Service Pack 1 veröffentlicht. Weitere Informationen über dieses kumulative Updatepaket finden Sie in folgendem Artikel der Microsoft Knowledge Base anzuzeigen:
2527187 Kumulatives Updatepaket 14 für SQL Server 2008 Service Pack 1
Hinweis Da die Builds kumulativ sind, jede neue Version enthält alle Hotfixes und alle die Sicherheitsupdates, die mit der vorherigen SQL Server 2008 geliefert wurden. Microsoft empfiehlt, dass Sie sich die neueste Version von Fix, die diesen Hotfix enthält. Weitere Informationen finden Sie in folgendem Artikel der Microsoft Knowledge Base anzuzeigen:
970365 Die SQL Server 2008 erstellt, die nach der Freigabe SQL Server 2008 Service Pack 1 veröffentlicht wurden
Microsoft SQL Server 2008-Hotfixes sind für bestimmte SQL Server Servicepacks erstellt. Sie müssen einen Hotfix SQL Server 2008 Service Pack 1 auf eine Installation von SQL Server 2008 Service Pack 1 anwenden. Standardmäßig ist jeder Hotfix, der in einem SQL Server Servicepack bereitgestellt wird in der nächsten SQL Server Servicepack enthalten.

Status

Microsoft hat bestätigt, dass dies ein Problem in Microsoft-Produkten, die im Abschnitt "Betrifft" aufgeführt sind.

Eigenschaften

Artikel-ID: 2530921 - Geändert am: Montag, 15. August 2011 - Version: 3.0
Die Informationen in diesem Artikel beziehen sich auf:
  • 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
Keywords: 
kbqfe kbexpertiseadvanced kbsurveynew kbfix kbmt KB2530921 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 2530921
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

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