Applies ToSQL Server 2008 Enterprise SQL Server 2008 Standard SQL Server 2008 Web SQL Server 2008 Workgroup SQL Server 2008 Developer SQL Server 2008 Express SQL Server 2008 Express with Advanced Services SQL Server 2008 Standard Edition for Small Business SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Express SQL Server 2008 R2 Express with Advanced Services SQL Server 2008 R2 Standard Edition for Small Business SQL Server 2008 R2 Web SQL Server 2008 R2 Workgroup

Microsoft vertreibt Microsoft SQL Server 2008 Microsoft SQL Server 2008 R2 Service Pack 1-Fixes als eine herunterladbare Datei. Da die Fixes kumulativ sind, enthält jede neue Version alle Hotfixes und alle Sicherheitsupdates, die in der vorherigen Version von SQL Server 2008 Service Pack 1 oder SQL Server 2008 R2 enthalten waren.

Problembeschreibung

Wenn Sie eine INSERT SELECT Union all -Anweisung in SQL Server 2008 oder SQL Server 2008 R2 ausführen, ist das Ergebnis der Anweisung möglicherweise falsch, wenn eine Quelltabelle der Select -Klausel als Zieltabelle der Insert -Klausel verwendet wird. Beispielsweise führen Sie die folgenden Anweisungen aus, um vier Tabellen zu erstellen:

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 die Tabellen TabA, TabBund TabD ein, und führen Sie dann die folgende INSERT SELECT Union all -Anweisung aus:

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) GOIn diesem Szenario erhalten Sie falsche Ergebnisse, und einige Datensätze werden fälschlicherweise nicht in die TabC -Tabelle eingefügt.

Fehlerbehebung

Informationen zum kumulativen Update

SQL Server 2008 Service Pack 3

Der Fix für dieses Problem wurde erstmals im kumulativen Update 1 für SQL Server 2008 Service Pack 3 veröffentlicht. Wenn Sie weitere Informationen zu diesem kumulativen Updatepaket erhalten möchten, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:

2617146 Kumulatives Updatepaket 1 für SQL Server 2008 Service Pack 3Hinweis Da die Builds kumulativ sind, enthält jede neue Fix-Version alle Hotfixes und alle Sicherheitsupdates, die in der vorherigen Version von SQL Server 2008 behoben wurden. Microsoft empfiehlt, die neueste Fix-Version zu verwenden, die diesen Hotfix enthält. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:

2629969 Die SQL Server 2008-Builds, die nach der Veröffentlichung von SQL Server 2008 Service Pack 3 veröffentlicht wurden Microsoft SQL Server 2008-Hotfixes werden für bestimmte SQL Server-Service Packs erstellt. Sie müssen einen SQL Server 2008 Service Pack 3-Hotfix auf eine Installation von SQL Server 2008 Service Pack 3 anwenden. Standardmäßig ist jeder Hotfix, der in einem SQL Server-Service Pack bereitgestellt wird, im nächsten SQL Server-Service Pack enthalten.

SQL Server 2008 R2

Der Fix für dieses Problem wurde erstmals im kumulativen Update 9 veröffentlicht. Wenn Sie weitere Informationen zum beziehen dieses kumulativen Updatepakets für SQL Server 2008 R2 benötigen, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:

2567713 Kumulatives Update Paket 9 für SQL Server 2008 R2 Hinweis Da die Builds kumulativ sind, enthält jede neue Fix-Version alle Hotfixes und alle Sicherheitsupdates, die mit der vorherigen Version von SQL Server 2008 R2 behoben wurden. Wir empfehlen, dass Sie die neueste Fix-Version anwenden, die diesen Hotfix enthält. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:

981356 Die SQL Server 2008 R2-Builds, die nach der Veröffentlichung von SQL Server 2008 R2 veröffentlicht wurden

SQL Server 2008 R2 Service Pack 1

Der Fix für dieses Problem wurde erstmals im kumulativen Update 2 für SQL Server 2008 R2 Service Pack 1 veröffentlicht. Wenn Sie weitere Informationen zum Abrufen dieses kumulativen Updatepakets benötigen, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:

2567714 Kumulatives Update Paket 2 für SQL Server 2008 R2 Service Pack 1Hinweis Da die Builds kumulativ sind, enthält jede neue Fix-Version alle Hotfixes und alle Sicherheitsupdates, die mit der vorherigen Version von SQL Server 2008 R2 behoben wurden. Wir empfehlen, dass Sie die neueste Fix-Version anwenden, die diesen Hotfix enthält. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:

2567616 Die SQL Server 2008 R2-Builds, die nach dem Veröffentlichen von SQL Server 2008 R2 Service Pack 1 veröffentlicht wurden

SQL Server 2008 Service Pack 2

Der Fix für dieses Problem wurde erstmals im kumulativen Update 5 für SQL Server 2008 Service Pack 2 veröffentlicht. Wenn Sie weitere Informationen zu diesem kumulativen Updatepaket erhalten möchten, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:

2555408 Kumulatives Updatepaket 5 für SQL Server 2008 Service Pack 2Hinweis Da die Builds kumulativ sind, enthält jede neue Fix-Version alle Hotfixes und alle Sicherheitsupdates, die in der vorherigen Version von SQL Server 2008 behoben wurden. Microsoft empfiehlt, die neueste Fix-Version zu verwenden, die diesen Hotfix enthält. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:

2402659 Die SQL Server 2008-Builds, die nach der Veröffentlichung von SQL Server 2008 Service Pack 2 veröffentlicht wurden Microsoft SQL Server 2008-Hotfixes werden für bestimmte SQL Server-Service Packs 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-Service Pack bereitgestellt wird, im nächsten SQL Server-Service Pack enthalten.

SQL Server 2008 Service Pack 1, Kumulatives Update 14

Der Fix für dieses Problem wurde erstmals im kumulativen Update 14 für SQL Server 2008 Service Pack 1 veröffentlicht. Wenn Sie weitere Informationen zu diesem kumulativen Updatepaket erhalten möchten, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:

2527187 Kumulatives Updatepaket 14 für SQL Server 2008 Service Pack 1Hinweis Da die Builds kumulativ sind, enthält jede neue Fix-Version alle Hotfixes und alle Sicherheitsupdates, die in der vorherigen Version von SQL Server 2008 behoben wurden. Microsoft empfiehlt, die neueste Fix-Version zu verwenden, die diesen Hotfix enthält. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:

970365 Die SQL Server 2008-Builds, die nach der Veröffentlichung von SQL Server 2008 Service Pack 1 veröffentlicht wurden Microsoft SQL Server 2008-Hotfixes werden für bestimmte SQL Server-Service Packs erstellt. Sie müssen einen SQL Server 2008 Service Pack 1-Hotfix auf eine Installation von SQL Server 2008 Service Pack 1 anwenden. Standardmäßig ist jeder Hotfix, der in einem SQL Server-Service Pack bereitgestellt wird, im nächsten SQL Server-Service Pack enthalten.

Status

Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.

Benötigen Sie weitere Hilfe?

Möchten Sie weitere Optionen?

Erkunden Sie die Abonnementvorteile, durchsuchen Sie Trainingskurse, erfahren Sie, wie Sie Ihr Gerät schützen und vieles mehr.

In den Communities können Sie Fragen stellen und beantworten, Feedback geben und von Experten mit umfassendem Wissen hören.